У меня есть поток, который вызывает два отдельных потока для выполнения некоторой работы. Всякий раз, когда какое-либо из заданий завершено, вызывается Waithandle.Set(0, и в конце родительского рабочего потока я хотел, чтобы WaitAll для обоих были завершены, прежде чем я продолжу. Но priceA() все еще появляется сначала, а затем PriceB ().
new Thread(() =>
{
new Thread(() =>
{
PriceA = _service.GetPriceA();
_waithandle[0].Set();
}).Start();
new Thread(() =>
{
PriceB = _service.GetPriceB();
_waithandle[1].Set();
}).Start();
WaitHandle.WaitAll(_waithandle);
}).Start();
Console.WriteLine("Hello");
Что мне не хватает?
Обновление:
private EventWaitHandle[] _waithandle;
Ктор:
_waithandle[0] = new ManualResetEvent(false);
_waithandle[1] = new ManualResetEvent(false);