Раздел «Замечания» на странице MSDN выглядит, конечно, как полный гадкий словарь.Контексты выполнения - это скрытая деталь реализации в .NET.Я просто расскажу вам, что я изменил, спроектировав его, но не смог полностью его зафиксировать.
Аргумент exitContext имеет значение только в сценариях удаленного взаимодействия.Передав true , вы разрешаете приостановку текущего вызова и маршалинг другого вызова от клиента к серверу.Вы бы сделали это для повышения пропускной способности, выбирая true только тогда, когда ожидаете, что вызов WaitOne () займет некоторое время.Точные последствия этого, однако, не очевидны для меня и не задокументированы, где я знаю.Перегрузка WaitOne () (без тайм-аута) всегда проходит false , что, к сожалению, немного напрягает мое объяснение.
Побочным эффектом этого метода является то, что Microsoft так плохо понимает, что Microsoftрешили нарушить обратную совместимость в .NET 2. Они добавили перегрузку WaitOne (int) в пакет обновления 2. В качестве аргумента exitContext передается значение false.Это вызвало много беспорядков, программисты начали использовать его, а затем обнаружили, что их программа перестала работать при запуске в версии .NET до SP2.Уч.