다음 코드 조각이 있습니다 (C#) : 맞습니까?스레드를 시작하고 모두 끝내기를 기다리는 중
Thread[] threads = new Thread[totalThread];
for (int i=0; i<totalThread; i++) {
threads[i] = new Thread(new ThreadStart(Work));
}
sw.Start();
for (int j=0; j<num_threads; j++) {
threads[j].Start();
}
for (int k=0; k<num_threads; k++) {
threads[k].Join();
}
sw.Stop();
sw
스톱워치, work
일부 방법이다. 몇 가지 스레드를 사용하여이 메서드를 실행하고 싶습니다. 그러나 모든 것이 멈추는 것 같습니다 (조인하지 않는 것처럼 보입니다). 내 스레드 처리가 좋은지 또는 내가 망치고 있는지 알아야합니다. 후자의 경우 스레드 문제가 아닌 메서드 호출에 내 문제가 있음이 분명합니다. 감사.
모두 괜찮아 보입니다. Work 메서드에 대한 코드를 게시 할 수 있습니까? – Chandu
왜 첫 번째 루프에는'totalThread'를 사용하고 다음 루프에는 num_threads를 사용합니까? 그럼에도 불구하고 위의 코드가 잘되어야하므로 문제는 'Work'메소드에서 발생할 가능성이 높습니다. – dlev
다시'DoSomething()'또는'DoSomethingElse()'가 어떤 것인지 모른 채 말하기는 어렵습니다. 'totalOperation'의 크기는 얼마나됩니까? 또한'op = r.Next (2)'라고 말할 수 있습니다. – dlev