相当于.net 4.0中.net 4.5中的Task.FromResult()
本文关键字:net FromResult Task 相当于 中的 | 更新日期: 2023-09-27 18:16:14
我找不到关于我的代码从。net 4.5重定向到4.0的信息。我必须在Windows XP上安装这个应用程序。
我在。net 4.5中的代码
public async Task <IXLWorksheet> ImportFile(string fileToImport)
{
...
return await Task.FromResult<IXLWorksheet>(Sheet1)
}
在。net 4.0方法FromResult不存在。有人知道它在。net 4.0中应该是什么样子吗?
我解决了TaskCompletionSource
的问题,下面是我的代码:
public async Task <IXLWorksheet> ImportFile(string fileToImport)
{
...
TaskCompletionSource<IXLWorksheet> tcs1 = new TaskCompletionSource<IXLWorksheet>();
Task<IXLWorksheet> t1 = tcs1.Task;
tcs1.SetResult(tempFile.Worksheet(1));
return await t1 ;
}
您正在返回等待的任务结果,该任务是根据结果构造的。解决方法很简单——去掉await
:
return Sheet1;
方法声明中的async
关键字将负责将其包装在任务中。
如果,出于某种原因,您需要在已完成的任务中手动包装现有值,您可以使用TaskCompletionSource
-它比Task.FromResult
更笨拙,但只是一点点。