关于ThreadPool.RegisterWaitForSingleObject和WaitHandle的应用介绍
2011-03-30 00:29
543 查看
public static RegisteredWaitHandle RegisterWaitForSingleObject ( WaitHandle waitObject, WaitOrTimerCallback callBack, Object state, int millisecondsTimeOutInterval, bool executeOnlyOnce )
第一个参数是waithandle类。一般是autoresetevent或者manuresetevent。 第二个是一个委托,签名如下public delegate void WaitOrTimerCallback (
Object state, bool timedOut ) 第三个参数传入该委托。 第四个是间隔时间。 第五个是是否只执行一次。
此方法有点类似timer控件。 RegisterWaitForSingleObject 方法检查指定对象的 WaitHandle 的当前状态,如果对象状态为非终止状态,则方法将注册一个等待操作。此等待操作由线程池中的一个线程来执行。当对象状态变为终止或超时间隔已过期时,委托由辅助线程执行。如果 timeOutInterval 参数不为零 (0) 并且 executeOnlyOnce 参数为 false,则每当事件收到信号或超时间隔已过时都会重置计时器。 。 static AutoResetEvent auto = new AutoResetEvent(true); static ManualResetEvent manu = new ManualResetEvent(false); static void Main(string[] args) { ThreadPool.RegisterWaitForSingleObject(manu, Go, "ppp", 2000, false); Thread.Sleep(6000); //manu.WaitOne(); } static void Go(object data, bool timeout) { Console.WriteLine(DateTime.Now.ToLongTimeString()); }
相关文章推荐
- 关于ThreadPool.RegisterWaitForSingleObject和WaitHandle的应用介绍 【转】
- ThreadPool基础之RegisterWaitForSingleObject
- ThreadPool.RegisterWaitForSingleObject 设置等待超时事件
- ThreadPool基础之RegisterWaitForSingleObject
- 每日20行之3~~~ThreadPool之RegisterWaitForSingleObject 自动定时执行(可循环)
- ThreadPool.RegisterWaitForSingleObject使用方法 推荐
- ThreadPool.RegisterWaitForSingleObject
- 为什么Mutex,Event,Thread句柄都是可以waitforsingleobject?
- CreateRemoteThread 和 WaitForSingleObject 的奇怪问题
- GetExitCodeThread(hThrd, &exitCode);WaitForSingleObject(hThrd,INFINITE);
- 关于WaitForSingleObject 的用法
- WaitForSingleObject介绍
- c# 线程池RegisterWaitForSingleObject的一个Demo
- WaitForSingleObject、WaitForMultipleObjects、CreateThread .
- CreateThread 与 WaitForSingleObject 的应用
- 008_WaitForSingleObject应用
- 关于WaitForSingleObject
- 说说WaitForSingleObject可以等待的HANDLE
- 赞!VC++编程创建远程线程式调用CALL_VirtualAllocEx_WriteProcessMemory_CreateRemoteThread_WaitForSingleObject
- 关于 CreateEvent 和WaitForMultipleObjects以及 WaitForSingleObject 等函数的使用实例