(四)线程--使用线程回调方法

王朝c#·作者佚名  2006-12-17
宽屏版  字体: |||超大  

(四)线程--使用线程回调方法

(四)线程--使用线程回调方法 (一).描述

此示例演示使用线程回调方法

(二).代码

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.EndInvoke(myIAsyncResult); //委托调用的方法已经完成,输出其值

Console.WriteLine(strEnd);

Console.Read();

}

}

}

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

(三).示例下载

http://www.cnblogs.com/Files/ChengKing/ThreadExample.rar

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有