任何人都可以提供任何示例/代码段来使用以下方法。
public static Task Run(Func<Task> function);
我试图了解如何使用上述重载方法,但是我在网络上找不到任何代码。
据我了解,此方法将func delegate
作为输入参数,该参数应返回Task,因此请提供一些代码段。
谢谢, Vinod
答案 0 :(得分:3)
此重载通常用于将任务卸载到线程池线程。
假设您在控制台应用程序中编写了此方法:
private static async Task DoSomeHeavyInitializationAsync()
{
// some heavy calculations;
// some async I/O (e.q. reading from database, file, etc);
await SomeMethodAsync(...);
// again some heavy calculations, async I/O, etc...
}
现在,您想从Program.Main
调用它,并保持Main
的响应速度:如果用户不想等待应用初始化,则可以按[enter]并终止该应用。
因此,您需要卸载任务以确保其代码不会在主线程上运行。 Task Run(Func<Task>)
可为您提供帮助:
static void Main(string[] args)
{
Task.Run(DoSomeHeavyInitializationAsync);
// do something else...
Console.ReadLine();
}