Есть:
оконное приложение, в котором существует множество потоков, которые через Invoke изменяют текст контролов. При закрытии приложения, они останавливаются через установку ManualResetEvent и ожидание завершения через Join.
Проблема:
если в момент ожидания завершения потоков, один из них сначала попробует изменить контрол, то получается dead-lock. Если же забить на Join, то поток может просто вылететь на обращении к disposed объекту.
Как решить? Использовать Abort? Просто перехватывать и умалчивать про исключение?