Можно ли использовать WaitHandle.WaitOne с флагом ExitContext без класса ContextBoundObject? - PullRequest
1 голос
/ 21 июня 2010

Документация MSDN предполагает, что могут быть другие способы использования флага ExitContext. См. WaitHandle.WaitOne () Какие есть другие способы ввода контекста не по умолчанию, кроме использования унаследованного класса ContextBoundObject? (Я не могу использовать ContextBoundObject в моем приложении)

1 Ответ

2 голосов
/ 21 июня 2010

Подсказка содержится в этом предложении.

Даже если вы в настоящее время выполняете метод для класса, который не является производным от ContextBoundObject, например String, вы можете находиться в контексте по умолчанию, если ContextBoundObjectнаходится в вашем стеке в текущем домене приложения.

Таким образом, вы можете вызвать WaitOne из класса, который не подкласс ContextBoundObject, и при этом у вас не будет предвзятого мнения, что ContextBoundObjectбыл каким-либо образом связан с вашим кодом, и тем не менее рассматриваемый поток мог находиться в контексте не по умолчанию, потому что где-то в стеке вызовов метод экземпляра класса ContextBoundObject мог бы выполняться без вашего ведома.

За исключением этого одиночного исключения, нет других способов войти в контекст синхронизации по умолчанию.

Есть довольно хорошая статья о потоке с дополнительной информацией, связанной с контекстами синхронизации, которую можно найти здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...