线程--使用线程回调方法(示例下载)
2008-07-29 15:54
676 查看
(一).描述
此示例演示使用线程回调方法
(二).代码
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();
}
}
}
本示例代码已经测试,能够正常运行!
此示例演示使用线程回调方法
(二).代码
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();
}
}
}
本示例代码已经测试,能够正常运行!
相关文章推荐
- (四)线程--使用线程回调方法(示例下载)
- (四)线程--使用线程回调方法(示例下载)
- (四)线程--使用线程回调方法(示例下载)
- (二)线程--通过委托异步调用方法(示例下载)
- Ps回调通知例程、Dpc定时器、内核线程使用方法.
- jQuery回调方法使用示例
- (八)线程--借助 封装类 实现“线程调用带参方法”(示例下载)
- PHP 使用header函数设置HTTP头的示例方法 表头 (xlsx下载)
- Python3.X 线程中信号量的使用方法示例
- PHP 使用header函数设置HTTP头的示例方法 表头 (xlsx下载)
- (八)线程--借助 封装类 实现“线程调用带参方法”(示例下载)
- NodeJS使用Range请求实现下载功能的方法示例
- (二)线程--通过委托异步调用方法(示例下载)
- PHP 使用header函数设置HTTP头的示例方法 表头 (xlsx下载)
- (二)线程--通过委托异步调用方法(示例下载)
- (四)线程--使用线程回调方法
- (八)线程--借助 封装类 实现“线程调用带参方法”(示例下载)
- 简单实用的分页控件 AspNetPager.dll 下载地址、使用方法、含有代码示例
- OkHttp 使用 get post UI线程回调 上传 下载 进度监听 更好地封装
- PHP 使用header函数设置HTTP头的示例方法 表头 (xlsx下载)