|
(一).描述 此示例演示使用线程回调方法 (二).代码 using System; using System.Threading; using System.Runtime.Remoting.Messaging; namespace 回调 { //委托声明(函数签名) delegate string MyMethodDelegate(); class MyClass { //调用的方法 public static string MyMethod() { //Console.WriteLine(System.Threading.Thread.CurrentThread.IsBackground); for(int i = 0;i < 3; i++) //延长时间(模拟实际任务) { Thread.Sleep(1000); } return "Hello Word"; } //声明委托,调用MyMethod private static MyMethodDelegate d = new MyMethodDelegate(MyClass.MyMethod); //声明委托,调用AsyncCallbackMethod private static System.AsyncCallback a = new System.AsyncCallback(MyClass.AsyncCallbackMethod); [STAThread] static void Main(string[] args) { d.BeginInvoke(a,null); Console.ReadLine(); //这句不能去掉,否则主线程执行完成后,子线会会强迫调用Abort()方法销毁掉,也就执行不到回调方法了 } public static void AsyncCallbackMethod(System.IAsyncResult myIAsyncResult) { string strEnd = d.En [1] [2] 下一页
|