Здравствуйте, xpg934, Вы писали:
X>Нужно это всё чтобы при завершении приложения исвестить foreground thread'ы (вызвать ManualResetEvent.Set(), чтобы они тоже завершались, а то происходит подвисание, т.к. главный тред ждет завершения остальных, а они и не знают что надо завершаться.
Я так понимаю, это необходимо сделать при аварийном завершении приложения? Иначе, при обычном завершении приложения, проблем с извещением потоков быть не должно. Тогда можно подписаться на AppDomain.UnhandledException, где и вызывать ManualResetEvent.Set() и ждать Thread.Join завершения потоков.