다음 작업이 있습니다.이 변수는 합계 변수를 공유하며 결국 합계는 9이지만 3이됩니다. 해결 방법을 알려주십시오. 많은 감사합니다.C# 작업 변수 합계
int sum = 0;
Task t1 = Task.Factory.StartNew(() =>
{
sum = sum + Computation();
});
Task t2 = Task.Factory.StartNew(() =>
{
sum = sum + Computation();
});
Task t3 = Task.Factory.StartNew(() =>
{
sum = sum + Computation();
});
Task.WaitAll(t1, t2, t3);
Console.WriteLine($"The sum is {sum}");
private static int Computation()
{
return 3;
}
Computation() 코드를 공유 할 수 있습니까? – buffjape
왜 여기서 작업을 사용하고 있습니까? – mason
여기에 스레드 동기화 로직이 없습니까? 스레드를 수정하여 동기화 할 수 있습니까? –