【发布时间】:2018-08-14 09:08:21
【问题描述】:
考虑以下代码:
public void CacheData()
{
Task.Run((Action)CacheExternalData);
Task.Run(() => CacheExternalData());
Task.Run(CacheExternalDataTask);
Task.Run(CacheExternalData);
}
public Task CacheExternalDataTask()
{
// Long running code
return Task.FromResult("Data");
}
public void CacheExternalData()
{
// Long running code
}
为什么Task.Run(CacheExternalData) 模棱两可?而Task.Run(CacheExternalDataTask) 不是?
当用CacheExternalData 调用Task.Run 时,我会认为编译器很清楚该方法不返回Task,它应该解析为Action?
【问题讨论】: