void Run(object obj) { while (true) { ChangeLight.autoResetEvent.WaitOne(); if (ChangeLight.precessing) { light.Change((Ellipse)obj, main); ChangeLight.autoResetEvent.Set(); } else { break; } } }
void Run(object obj) { while (true) { ChangeLight.semaphore.WaitOne(); if (ChangeLight.precessing) { light.Change((Ellipse)obj, main); ChangeLight.semaphore.Release(); } else { ChangeLight.semaphore.Release(); break; } } }
void Run(object obj) { while (true) { ChangeLight.mtx.WaitOne(); if (ChangeLight.precessing) { ChangeLight.Change((Ellipse)obj, main); ChangeLight.mtx.ReleaseMutex(); ChangeLight.mtx.WaitOne(); } else { break; } } }