(一).描述 先运行个简单的线程示例,认识一下线程 通过委托调用方法,以及使用AsyncResult判断线程的状态 (二).代码using System;using System.Threading;using System.Runtime.Remoting.Messaging;namespace 通过委托异步调用方法{ //委托声明(函数签名) delegate string MyMethodDelegate(); class MyClass { //要调用的动态方法 public string MyMethod1() { return "Hello Word1"; } //要调用的静态方法 public static string MyMethod2() { return "Hello Word2"; } } class Class1 { /**//// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main(string[] args) { MyClass myClass = new MyClass(); //方式1: 声明委托,调用MyMethod1 MyMethodDelegate d = new MyMethodDelegate(myClass.MyMethod1); string strEnd = d(); Console.WriteLine(strEnd); //方式2: 声明委托,调用MyMethod2 (使用AsyncResult对象调用) d = new 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(); } }}