Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Общие вопросы по .NET и C# > Реализация методов делегата |
Автор: Idsa 19.7.2008, 21:33 |
Решил посмотреть в Reflector'е реализацию BeginInvoke для делегата. Был удивлен тем, что, в какой делегат ни глянь, реализация пустая. Как быть? ![]() |
Автор: mihryak 19.7.2008, 23:29 | ||||
она, вроде как, не вполне пустая все эти виртуальные методы помечены атрибутом
если я правильно понял скудное описание в http://msdn.microsoft.com/en-us/library/4k10sb5f.aspx'e, реализация зависит от рантайма сам же механизм работы описан так
т.е. происходит что-то вроде вызова ThreadPool.QueueUserWorkItem |
Автор: mihryak 20.7.2008, 02:34 | ||
хм.. я это понял иначе: делегат - это вполне себе CTS-тип, и BeginInvoke тоже стандартен, но их конкретное поведение определяется рантаймом вот ещё нашёл http://msdn.microsoft.com/en-us/library/96b1ayy4.aspx, где о делегатах говорится как о CTS-типе а штука-то и правда загадочная ![]() |
Автор: Idsa 21.7.2008, 13:29 | ||
Да-да, с недоCTS я погорячился. Вообще интересно было бы поглядеть, как там внтури организовывается работа со ThreadPool, ведь ThreadPool.QueueUserWorkItem работает с фиксированным делегатом (т. е. с методами с фиксированной сигнатурой)... |
Автор: Idsa 23.7.2008, 11:14 |
Схожу-ка я с этим вопросом на RSDN... |
Автор: mihryak 2.8.2008, 12:10 |
прояснилось что-нибудь? ![]() |
Автор: Idsa 3.8.2008, 09:12 |
Вот эта тема: http://rsdn.ru/Forum/message/3032669.flat.aspx#3032669 На RSDN, как и всегда, люди не очень общительные и многословные ![]() И так и не понял, как можно написать необходимый wrapper. |
Автор: Skynin 8.8.2008, 13:30 |
может так: http://vingrad.ru/blogs/skynin/2008/08/06/sozdanie-potoka-v-net-cf/ |