C#等待ask.Factory.StartNew任务完成
时间: 2024-09-08 17:04:28 浏览: 63
在C#中,使用`Task`类的`Factory.StartNew`方法可以创建并启动一个新的任务。这个方法是异步执行的,意味着它不会阻塞当前线程,而是在后台线程上运行。如果你需要等待这个异步任务完成,可以使用`Task.Result`属性或者调用`Task.Wait`方法。但请注意,使用`Task.Result`会导致当前线程阻塞直到任务完成,而调用`Task.Wait`同样也会阻塞线程。
一个简单的例子如下:
```csharp
using System;
using System.Threading.Tasks;
class Program
{
static void Main()
{
Task task = Task.Factory.StartNew(() =>
{
// 这里是异步执行的代码
Console.WriteLine("任务开始执行");
// 模拟一些耗时的操作
Task.Delay(2000).Wait();
Console.WriteLine("任务执行完成");
});
// 等待任务完成
task.Wait(); // 这里会阻塞,直到task任务完成
Console.WriteLine("任务已完成,继续执行主线程的其他操作");
}
}
```
在上面的代码中,我们启动了一个新的任务来模拟异步操作,并在主线程中等待该任务完成。`task.Wait()`方法使得主线程在此处暂停执行,直到被启动的任务结束。
阅读全文