您的位置:首页 > 移动开发 > Objective-C

关于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());                                               }

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: