我已经定义了此分组代码。谁能告诉我此代码是异步还是并行? 此块代码仅是示例。它创建四个线程,最后等待所有线程完成。
public Form1()
{
InitializeComponent();
var t1 = Task.Run(() =>
{
GetSum();
});
var t2 = Task.Run(() =>
{
GetSum();
});
var t3 = Task.Run(() =>
{
GetSum();
});
var t4 = Task.Run(() =>
{
GetSum();
});
Task.WaitAll(t1, t2, t3, t4);
}
private int GetSum()
{
int sum = 0;
for (int i = 0; i < int.MaxValue; i++)
{
sum += i;
}
return sum;
}
答案 0 :(得分:0)
首先,任务不会直接创建线程。任务通过ThreadPool机制处理线程。它是异步的。这是因为静态方法Task.Run()将排队等待在ThreadPool中执行的工作返回给调用者。