Re[5]: Создание асинхронных методов в .NET
От: LoparevSV Россия  
Дата: 29.07.08 10:56
Оценка:
_FR>AsyncSumCaller — это что такое?

забыл)) это делегат. Вот еще раз код (надеюсь на это раз полный и без ошибок):

класс:

delegate int AsyncSumCaller(int a, int b);

class MyClass
{
        public int Sum(int a, int b)
        {
            Thread.Sleep(5000);
            return a + b;
        }

        public IAsyncResult BeginSum(int a, int b, AsyncCallback callBack)
        {
            AsyncSumCaller asyncSumCaller = new AsyncSumCaller(Sum);
            return asyncSumCaller.BeginInvoke(a, b, callBack, this);
        }

        public int EndSum(IAsyncResult ar)
        {
            AsyncSumCaller asyncSumCaller = (AsyncSumCaller)((AsyncResult)ar).AsyncDelegate;
            return asyncSumCaller.EndInvoke(ar);
        }
}


использование класса:

class UseMyClass
{
        public static void Main()
        {
            MyClass myClass = new MyClass();
            myClass.BeginSum(2, 3, new AsyncCallback(ReceiveSum));
        }

        private void ReceiveSum(IAsyncResult ar)
        {
            MyClass myClass = (MyClass)ar.AsyncState;
            int sum = myClass.EndSum(ar);
        }
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.