为Task.Run创建新的委托对象

时间:2018-06-06 12:23:00

标签: c#

尝试理解将委托传递给Task.Run()。根据我的理解,它应该足够了 Task.Run(readDataFromIO)

但我遇到了模糊的调用。好吧,为了解决这个问题,我需要进行类型转换:

Task.Run(Func<double> (readDataFromIO) )

但为什么我需要new

Task.Run(new Func<double> (readDataFromIO))

根据我的理解,我已经有了可以使用的功能。

public static Task<double> readDataFromIOAsync()
{
    return Task.Run(new Func<double>(readDataFromIO) );
}

public static double readDataFromIO()
{
    Thread.Sleep(2000);
    Console.WriteLine("rd done");
    return 10d;
}

UPD

我已经使用下面的解决方案进行了测试,它运行良好。所以仍然有疑问 - 为什么new

return Task.Run((Func<double>)readDataFromIO);

0 个答案:

没有答案
相关问题