![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 14 Всего: 62 |
Решил посмотреть в Reflector'е реализацию BeginInvoke для делегата. Был удивлен тем, что, в какой делегат ни глянь, реализация пустая.
Как быть? ![]() |
|||
|
||||
mihryak |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 19 Всего: 36 |
она, вроде как, не вполне пустая
все эти виртуальные методы помечены атрибутом
если я правильно понял скудное описание в msdn'e, реализация зависит от рантайма сам же механизм работы описан так
т.е. происходит что-то вроде вызова ThreadPool.QueueUserWorkItem |
||||
|
|||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 14 Всего: 62 |
Примерно это я и ожидал там увидеть, ибо кто-то из классиков ASP.NET (то ли Макдональд, то ли Эспозито) писал, что при реализации асинхронных страниц не стоит использовать метод BeginInvoke делегата, потому что он использует поток из пула.
Судя по этой фразе, требования реализации BeginInvoke и EndInvoke нет в CLS, но есть в CLI. Так? mihryak, спасибо за конструктивную дискуссию. +1. Это сообщение отредактировал(а) Idsa - 20.7.2008, 01:59 |
|||
|
||||
mihryak |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 19 Всего: 36 |
хм.. я это понял иначе: делегат - это вполне себе CTS-тип, и BeginInvoke тоже стандартен, но их конкретное поведение определяется рантаймом вот ещё нашёл ссылку, где о делегатах говорится как о CTS-типе а штука-то и правда загадочная ![]() |
|||
|
||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 14 Всего: 62 |
Да-да, с недоCTS я погорячился. Вообще интересно было бы поглядеть, как там внтури организовывается работа со ThreadPool, ведь ThreadPool.QueueUserWorkItem работает с фиксированным делегатом (т. е. с методами с фиксированной сигнатурой)... |
|||
|
||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 14 Всего: 62 |
Схожу-ка я с этим вопросом на RSDN...
|
|||
|
||||
mihryak |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 731 Регистрация: 28.4.2007 Где: С-Пб Репутация: 19 Всего: 36 |
||||
|
||||
Idsa |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 14 Всего: 62 |
Вот эта тема: http://rsdn.ru/Forum/message/3032669.flat.aspx#3032669 На RSDN, как и всегда, люди не очень общительные и многословные ![]() И так и не понял, как можно написать необходимый wrapper. |
|||
|
||||
Skynin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 359 Регистрация: 1.7.2007 Где: Харьков Репутация: 1 Всего: 10 |
||||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |