有没有办法得到a的结果,Task<T>当它被转发为非泛型Task?我知道这可以用Reflection做,但有没有办法在没有它的情况下做到这一点?也许是通过使用Expression?这是我想要做的一个例子:
RunResult RunTask(Task task)
{
task.Wait();
object result = ???;
if (result is RunResult)
return (RunResult)result;
return RunResult.Success;
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以通过具有不同的重载来实现这一点,但我不喜欢行为根据选择的重载而改变.
如果任务没有结果,那么在这种情况下null就可以了.
这似乎是一个Task<RunResult>,对吧?然后将其转换为该类型并提取结果.
如果我的这个猜测是错误的,你可以dynamic用来快速达到Result财产的价值.
((dynamic)myTask).Result
Run Code Online (Sandbox Code Playgroud)
现在这个结果值是类型的,dynamic所以我不确定你想如何从中提取数据.
| 归档时间: |
|
| 查看次数: |
1852 次 |
| 最近记录: |