读书人

不阻塞主线程的前提上等待5s

发布时间: 2012-08-25 10:06:20 作者: rapoo

不阻塞主线程的前提下等待5s
在windows service里的一个函数,需要在函数里等待5s左右,该函数会被主线程调用且该函数需要访问类的私有成员变量,而且Service启动时该函数就被调用。

用阻塞的方法(Sleep,WaitForMultipleObjects) 会阻塞主线程。
用SetTimer会破坏封装性。

用了MsgWaitForMultipleObjects,好像一样要阻塞主线程。
不知大家有何好主意不?


[解决办法]
另开线程吧
[解决办法]
可以启动一个线程,不过不用破坏封装性。
主线程里调用类的一个public函数,这个函数创建一个线程,并传入this;线程函数是类的static函数;
在线程函数里等待5s后根据传入的类指针调用其另一个public函数,这个函数里做具体事情,访问private成员等。

读书人网 >C++

热点推荐