Task.Factory.StartNew 开启多任务 示例 带参数
时间: 2024-12-19 10:16:06 浏览: 5
`Task.Factory.StartNew` 是.NET Framework中的一个静态方法,用于创建并启动一个新的后台线程执行给定的任务,即使当前主线程已经满负荷。它的基本用法是接受一个Action或者Func作为参数,这两个类型的委托都可以作为无返回值的匿名函数执行。
下面是一个示例,展示了如何使用 `Task.Factory.StartNew` 来开启一个新的任务,传递一个带参的方法:
```csharp
using System;
using System.Threading.Tasks;
public class Program
{
public static void DoWork(int数, string消息)
{
Console.WriteLine($"在新的线程上工作,参数是 {数} 和 {消息}");
// 这里可以放置需要执行的具体代码
Thread.Sleep(2000); // 模拟耗时操作
}
public static void Main()
{
int number = 5;
string message = "Hello from parent thread";
// 创建并启动新任务
var task = Task.Factory.StartNew(() =>
{
DoWork(number, message);
});
// 主线程继续执行其他任务
Console.WriteLine("Parent thread is still working...");
// 等待新任务完成
try
{
task.Wait(); // 如果你想阻塞直到任务完成,可以使用Wait()
}
catch (AggregateException ex)
{
// 处理可能出现的异常
foreach (var inner in ex.InnerExceptions)
{
Console.WriteLine(inner.Message);
}
}
Console.WriteLine("All tasks finished.");
}
}
```
在这个例子中,`DoWork` 方法会在一个新的线程上执行,而主线程将继续执行。当你按下回车或关闭控制台窗口时,你会看到 "Parent thread is still working...",然后是新线程执行的结果。
阅读全文