异步调用的一个例子

delegate double CalculateMethod(double Diameter);
  static CalculateMethod calcMethod;
  double result = 0;
  static void Main(string[] args)
  {
  calcMethod = new CalculateMethod(Calculate);
  calcMethod.BeginInvoke(5, new AsyncCallback(TaskFinished), null);
  }
  ///
  ///线程调用的函数
  ///
  public static double Calculate(double Diameter)
  {
  return Diameter * Math.PI;
  }
  ///
  ///线程完成之后回调的函数
  ///
  public static void TaskFinished(IAsyncResult result)
  {
  result=calcMethod.EndInvoke(result);
  }

 

BeginInvoke 来实现异步调有,并在调用结束后执行TaskFinished 方法,这样就可以在两个线程之间进行数据的传入传出

posted @ 2012-10-04 16:18  举重-若轻  阅读(111)  评论(0)    收藏  举报