我有一个主函数 Edit(),必须生成 docx 文件,然后将其转换为 PDF。但我必须等到 docx 生成并包含所需的所有样式,然后才能转换为 PDF。
public HttpResponseMessage Edit()
{
//coding
GenerateDocx();
}
public void GenerateDocx()
{
//coding
ConvertDoctoPDF(file);
}
public void ConvertDoctoPDF(string file)
{
//coding
}
任何人都可以建议如何在上述情况下为我的函数使用异步和等待。
根据您的代码,它应该如下所示:
public async Task<HttpResponseMessage> Edit()
{
//coding
await GenerateDocx();
}
public async Task GenerateDocx()
{
//coding
await ConvertDoctoPDF(file);
}
public async Task ConvertDoctoPDF(string file)
{
//coding
}
我建议从一开始就添加取消支持:
public async Task<HttpResponseMessage> Edit(CancellationToken cancel = default)
{
//coding
await GenerateDocx(cancel);
}
public async Task GenerateDocx(CancellationToken cancel = default)
{
//coding
await ConvertDoctoPDF(file, cancel);
}
public async Task ConvertDoctoPDF(string file, CancellationToken cancel = default)
{
//coding
}