我在WCF Web服务中使用这些方法。
public async Task<bool> DoAsyncWork()
public List<Progress> GetProgress(string progressKey)
如果可能的话,我希望在异步工作开始后立即从DoAsyncWork方法获取progressKey,这样我就可以向用户显示进度。进度保存在数据库中,其中progressKey是DoAsyncWork完成工作的关键。
我理解在WCF服务中使用out参数不是一个好习惯。所以
public async Task<bool> DoAsyncWork(out string progressKey)
不是解决方案。
在任务完成之前不会返回通用bool值,因此我无法使用通用Task类来获取progressKey。
答案 0 :(得分:0)
将您可以调用的回调传递给您的任务方法,以便为您提供进度。无需输出参数。
void myMethod(IProgressCallback callback)
{
... do some work
callback.NotifyProgress("Ive done some work");
}