Здравствуйте, HowardLovekraft, Вы писали:
HL>Выделенное полужирным можно заменить чем угодно. Это "что угодно" обладает следующими характеристиками:
HL>- оно выполнится в UI-потоке (UI-поток оповещен и выполняет какой-то код);
HL>- пока оно не выполнится, рабочий поток, из которого было сгенерировано событие, будет остановлен (DataArrived будет вызван из рабочего потока, но остановится на context.Send и будет ждать его завершения).
HL>Где вы тут собираетесь использовать два потока и "два экземпляра EventWaitHandler" —
HL>Либо у вас какой-то экзотический "компонент", о котором вы что-то не договариаете.
Подскажите, а такой манёвр (переключение контекста синхронизации) возможен только при использовании UI-потока? Вообщем если инициализировать контекст в форме, то все работает как требуется. А если попробовать реализовать подобную схему с обычными (не UI) классами, то значение SinhronizationContext.Current сбрасывается в null и фактического переключения не происходит. Можно переключать контекст не на UI-поток?