CAUTION Always call EndInvoke
От: vladserge Россия  
Дата: 29.11.03 06:40
Оценка:
Привет всем !

В энциклопедии юнных сурков сказано CAUTION Always call EndInvoke after your asynchronous call completes.
и все начинает выглядить на раскаряку. Неужели для того чтобы получить fire-and-forget нужно плодить всяких "монстриков" типа


public class AsyncHelper
    {
        delegate void DynamicInvokeShimProc( Delegate d, object[] args );

        static DynamicInvokeShimProc dynamicInvokeShim = new DynamicInvokeShimProc(DynamicInvokeShim);
        static AsyncCallback dynamicInvokeDone = new AsyncCallback(DynamicInvokeDone);

        public static void FireAndForget( Delegate d, params object[] args )
        {
            dynamicInvokeShim.BeginInvoke(d, args, dynamicInvokeDone, null);
        }

        static void DynamicInvokeShim( Delegate d, object[] args )
        {
            d.DynamicInvoke(args);
        }

        static void DynamicInvokeDone( IAsyncResult ar )
        {
            dynamicInvokeShim.EndInvoke(ar);
        }
    }


и проч? (Это мне показалось наиудобнейшим методом)

Я откровенно немогу даже догадаться какова логика работы асинхронных делигатов?

Неужели она предполагала что программер будет плодить подобное?

А что будет если не вызывать EndInvoke? Я попробывал ничего страшного не происходит.

Поделитесь своими соображениями, пожалуйста.


С Уважением Сергей Чикирев.
С Уважением Сергей Чикирев
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.