описался в коде...
вот правильный:
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);
}
}
Поправте, если что не так