private void ParallelCrashTest()
{
for (int x = 0;x < 100; x++)
{
Dowork_1(i);
}
}
private void Dowork_1(int i)
{
ThreadInfo threadInfo = new ThreadInfo();
threadInfo.first = 0;
threadInfo.last = 100;
for (int x = 0;x < 60; x++)
{
Dowork_2(threadinfo);
progressBar2.Value = x + 1;
}
}
private void Dowork_2(object param)
{
ThreadInfo threadInfo = param as ThreadInfo;
int first = threadInfo.first;
int last = threadInfo.last;
Parallel.For(first, last, i =>
{
didsomthing...
}
Update();
}
所以它不起作用。 (CPU正在工作90-100%,這意味着我仍然在工作我的應用程序) 我用更新()而不是Application.DoEvent()
。我的應用程序崩潰或無法更新()。我不知道 。我認爲這可能是問題是更新(),但我不知道。你有什麼建議嗎? 謝謝。VS2010上的stacktrace
什麼是「didsomthing?」我敢打賭,無論是什麼原因造成這種情況都會發生。可能試圖更新GUI。 – Aaronaught 2010-02-28 19:50:38
@失敗巨魔失敗。我也很喜歡「我的應用程序崩潰HURR」問題,*無例外詳情*。就像我們可以揮動魔杖一樣,知道爲什麼會有東西墜毀。此外,Application.DoEvents在多線程應用程序?蓋伊需要坐下來寫一本好書並學習。 – Will 2010-02-28 20:08:17
@威爾:你的意思是你*不要*有一個魔術調試棒?我支付了我的最高美元,但它是值得的,沒有更多討厭的應用程序崩潰! – Aaronaught 2010-02-28 21:15:27