Re[3]: Создание асинхронных методов в .NET
От: LoparevSV Россия  
Дата: 29.07.08 09:22
Оценка:
описался в коде...
вот правильный:

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...
Пока на собственное сообщение не было ответов, его можно удалить.