使用 Async 和 Await 函数时出现错误,该函数必须等到生成文档(docx)

问题描述 投票:0回答:1

我有一个主函数 Edit(),必须生成 docx 文件,然后将其转换为 PDF。但我必须等到 docx 生成并包含所需的所有样式,然后才能转换为 PDF。

public HttpResponseMessage Edit()
{ 
   //coding
   GenerateDocx();
}

public void GenerateDocx()
{
   //coding
   ConvertDoctoPDF(file);
}
public void ConvertDoctoPDF(string file)
{
   //coding
}

任何人都可以建议如何在上述情况下为我的函数使用异步和等待。

c# api async-await
1个回答
0
投票

根据您的代码,它应该如下所示:

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
}
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.