Что передавать методу Delegate.EndInvoke?
От: dims12 http://www.relativity.ru
Дата: 12.10.10 09:22
Оценка:
Когда я создаю делегата, компиллятор автоматически создаёт в его классе методы BeginInvoke и EndInvoke. Где-то можно посмотреть описания этих методов в таком же виде, в каком я смотрю описания всех других методов? Проблема в том, что эти методы не содержатся в классе Delegate и его наследниках, а создаются конкретно под каждый делегат в моей программе, поэтому в доках они не представлены.

Конкретно, меня интересует, как пользоваться объектом типа IAsyncResult?

Я по наитию запоминаю этот объект, который возвращается BeginInvoke, а потом передаю его соответствующему EndInvoke. Но насколько это необходимо? Ведь я всё равно вызываю EndInvoke к конкретному экземпляру делегата и там внутри уже содержится вся необходимая информация. Зачем ещё передавать IAsyncResult?

Что можно ещё сделать с этим объектом?
Re: Что передавать методу Delegate.EndInvoke?
От: Jolly Roger  
Дата: 12.10.10 09:40
Оценка: 2 (1)
Здравствуйте, dims12, Вы писали:

D>Зачем ещё передавать IAsyncResult?


Может быть затем, что один делегат может быть вызван одновременно из разных потоков?
"Нормальные герои всегда идут в обход!"
Re: Что передавать методу Delegate.EndInvoke?
От: Lloyd Россия  
Дата: 12.10.10 09:48
Оценка: +1
Здравствуйте, dims12, Вы писали:

D>Ведь я всё равно вызываю EndInvoke к конкретному экземпляру делегата и там внутри уже содержится вся необходимая информация.


С чего вы взяли?
Re[2]: Что передавать методу Delegate.EndInvoke?
От: dims12 http://www.relativity.ru
Дата: 12.10.10 09:48
Оценка:
Здравствуйте, Jolly Roger, Вы писали:

JR>Может быть затем, что один делегат может быть вызван одновременно из разных потоков?


Ах да, конечно!
Re[2]: Что передавать методу Delegate.EndInvoke?
От: Lloyd Россия  
Дата: 12.10.10 09:56
Оценка: +2
Здравствуйте, Jolly Roger, Вы писали:

D>>Зачем ещё передавать IAsyncResult?


JR>Может быть затем, что один делегат может быть вызван одновременно из разных потоков?


Какая разница? Можно и из того же потока.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.