任何人都可以提供任何示例/代码片段以使用以下方法。
public static Task Run(Func<Task> function);
我正在尝试了解如何使用上述重载方法,但是我在网上找不到任何代码。
据我了解,此方法将func delegate
输入参数作为返回Task的输入参数,因此请提供一些代码片段。
谢谢,Vinod
此重载通常用于将任务卸载到线程池线程。
假设您在控制台应用程序中编写了此方法:
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();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句