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()
대신 Update()를 사용했습니다. 내 응용 프로그램이 충돌하거나 Update() 할 수 없습니다. 나는 모른다. 그게 문제가 될 수 Update() 생각하지만 잘 모르겠습니다. 어떤 제안이 있으십니까? 감사합니다.스택 트레이스 VS2010
"didsomthing"이란 무엇입니까? 이 문제를 일으키는 원인이 무엇이든지간에 거기에 있다고 내가 말할 것입니다. 아마도 GUI를 업데이트하려고합니다. – Aaronaught
@ fail 트롤이 실패했습니다. 나는 예외 사항이 전혀없는 "MY APP CRASHED HURR"질문도 좋아합니다. 우리가 마술 지팡이를 물결 치고 무언가가 추락 한 이유를 알 수있는 것처럼 말입니다. 또한, 다중 스레드 응용 프로그램의 Application.DoEvents? 가이는 멋진 책에 앉아서 배워야합니다. – Will
@ 윌 : 당신은 마법의 디버깅 지팡이를 가지고 있지 않습니까? 내 최고의 달러를 지불했지만 그만한 가치가있었습니다. 더 이상 성가신 응용 프로그램이 충돌하지 않습니다! – Aaronaught