异步调用:(二)线程--通过委托异步调用方法



().描述
  先运行个简单线程举例认识下线程
  通过委托思路方法,以及使用AsyncResult判断线程状态

( 2).代码
using ;
using .Threading;
using .Runtime.Remoting.Messaging;

通过委托异步思路方法

 //委托声明(签名)
 delegate MyMethodDelegate;

  MyClass
 {
  //要动态思路方法
  public MyMethod1
  {
    \"Hello Word1\";
  }

  //要静态思路方法
  public MyMethod2
  {
    \"Hello Word2\";
  }
 }
  Class1
 {
  /// <summary>
  /// 应用主入口点
  /// </summary>
  [STAThread]
   void Main( args)
  {
            MyClass myClass = MyClass;
   
   //方式1:  声明委托MyMethod1
   MyMethodDelegate d = MyMethodDelegate(myClass.MyMethod1);
    strEnd = d;   
   Console.WriteLine(strEnd);

   //方式2:  声明委托MyMethod2 (使用AsyncResult对象)
   d = MyMethodDelegate(MyClass.MyMethod2); //定义个委托可以供多个思路方法使用      
   AsyncResult myResult;   //此类封闭异步委托异步结果,通过AsyncResult得到结果.
   myResult = (AsyncResult)d.BeginInvoke(null,null);        //开始
   while(!myResult.IsCompleted)  //判断线程是否执行完成
   {
    Console.WriteLine(\"正在异步执行MyMethod2 .....\");
   }
   Console.WriteLine(\"思路方法MyMethod2执行完成!\");
   strEnd = d.EndInvoke(myResult);      //等待委托思路方法完成并返回结果  
   Console.WriteLine(strEnd);
   Console.Read;
  }
 }
}


本举例代码已经测试能够正常运行!

Tags:  .net异步调用 线程异步 异步多线程 异步调用

延伸阅读

最新评论

发表评论