c#异步,(无回调函数)
来源:互联网 发布:淘宝的外卖在哪里 编辑:程序博客网 时间:2024/05/24 00:01
using System;namespace ConsoleApplication1{ class Class1 { //声明委托 public delegate void AsyncEventHandler(); //异步方法 void Event1() { Console.WriteLine("Event1 Start--------------------------------------------------------------------"); System.Threading.Thread.Sleep(4000); Console.WriteLine("Event1 End----------------------------------------------------------------------------"); } // 同步方法 void Event2() { Console.WriteLine("Event2 Start"); int i = 1; while (i < 1000) { i = i + 1; Console.WriteLine("Event2 " + i.ToString()); } Console.WriteLine("Event2 End"); } [STAThread] static void Main(string[] args) { long start = 0; long end = 0; Class1 c = new Class1(); Console.WriteLine("ready"); start = DateTime.Now.Ticks; //实例委托 AsyncEventHandler asy = new AsyncEventHandler(c.Event1); //异步调用开始,没有回调函数和AsyncState,都为null IAsyncResult ia = asy.BeginInvoke(null, null); //同步开始, c.Event2(); //异步结束,若没有结束,一直阻塞到调用完成,在此返回该函数的return,若有返回值。 asy.EndInvoke(ia); //都同步的情况。 //c.Event1(); //c.Event2(); end = DateTime.Now.Ticks; Console.WriteLine("时间刻度差=" + Convert.ToString(end - start)); Console.ReadLine(); } }}