C#使用task時候假面卡死

martin_tang martin_tang 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
下面的代碼是測試使用3個task去執行count_wast_time()這個函數;然後再畫面上面顯示“count_wast_time 開始”;但是一旦添加 Task.WaitAll界面就卡死了,為什麼??
求告知錯誤的原因,還有如何合理的修改


```
private void button3_Click(object sender, EventArgs e)
{
var tasks = new Task[3];
int i = 0;
int j = 0;
int k = 0;

a2 = 0;
string s1 = "";

tasks[0] = Task.Factory.StartNew(() =>
{
count_wast_time();
}
);

tasks[1] = Task.Factory.StartNew(() =>
{
count_wast_time();
}
);

tasks[2] = Task.Factory.StartNew(() =>
{
count_wast_time();
}
);
Task.WaitAll(tasks[0], tasks[1], tasks[2]); //???出問題

label3.Text = label3.Text + "全部執行完畢";
}

```


```
private void count_wast_time()
{
this.label3.Invoke(new Action(() =>
{
label3.Text = "count_wast_time 開始\n";
}));


for (int i2 = 0; i2 < 600; i2++)
{

for (int j2 = 0; j2 < 200; j2++)
{
for (int k3 = 0; k3< 100; k3++)
{
}
}
}
}
```



...全文
评论 11
收藏 已收藏
分享
返回顶部
martin_tang
C# 111,129 成员 642,538 内容