Это сложная тема, и я не знаю достаточно об этом. Что я знаю, так это то, что это важно в сценариях удаленного взаимодействия. Передав True, вы можете избежать блокировки связи до тех пор, пока не будет разрешено ожидание, и разрешить отправку других сообщений. Да, позволяет избежать взаимоблокировок, но может вызвать проблемы с синхронизацией.
Этот аргумент WaitOne () вызвал столько путаницы и FUD, что в .NET 2.0 SP1 произошли изменения, нарушающие совместимость. Они добавили перегрузки WaitOne (int) и WaitOne (TimeSpan), чтобы избежать угадывания правильного значения аргумента exitContext. Который обычно должен быть Ложным.