Обязательно ли вызывать EndInvoke?
От: drpadawan  
Дата: 09.10.06 18:00
Оценка:
1. Для синхронизации есть механизм BeginInvoke/EndInvoke. В документации не описывается четко, обязателен ли EndInvoke, в особенности, если в вызывающем потоке синхронизации не нужно. То есть, когда вызывающий поток не хочет ждать окончания работы вызова в "управляемом" потоке и когда ему по-фигу на результаты.

2. Что будет, если один и тот же делегат вызывается через BeginInvoke 2 и более раз подряд, без вызова EndInvoke.

В примерах смотрел. Во всех присутствует вызов EndInvoke, кроме отдельного случая, где возможна ситуация с обходом вызова EndInvoke (т.е. в вызывающем потоке дается 10 секунд на выполнение асинхронной операции, если операция выполнилась за это время, то вызывается EndInvoke, если нет — то и суда нет — это H:\vs2003\SDK\v1.1\Samples\Technologies\Remoting\Advanced\AsyncDelegate\AsyncDelegate.cs линия 174).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.