实际上,我很难理解BeginInvoke()和EndInvoke()的配对。
class AsynchronousDemo
{
public delegate void DemoDelegate();
static void Main()
{
DemoDelegate d = PrintA;
IAsyncResult AResult = d.BeginInvoke(Callback,null);
d.EndInvoke(AResult);
Console.ReadKey(true);
}
static void PrintA()
{
Console.WriteLine("....Method in Print A Running ....");
Thread.Sleep(4000);
Console.WriteLine("....Method in Print A Completed...");
}
static void Callback(IAsyncResult ar)
{
Console.WriteLine("I will be finished after method A
completes its execution");
}
}
1) 我们是否使用 "EndInvoke()" 来指示 BeginInvoke() 的结束 "异步操作"?
2) 这对的真正用途是什么?
3) 我可以得到一些简单而好的例子来更好地理解它吗?