在window下编程,使用C/C++。
_pipe()函数创建的管道,不能使用非阻塞方式。我想达到的目的:
两个线程传递信息,一端不定时写入信息,另一端读,如果超时没有信息,做其他事情。
也可以不使用管道。
请大虾指点。
_pipe()函数创建的管道,不能使用非阻塞方式。我想达到的目的:
两个线程传递信息,一端不定时写入信息,另一端读,如果超时没有信息,做其他事情。
也可以不使用管道。
请大虾指点。
那是窗口里的东西吧?
在win32下,也可用其他,CreatePipe(),CreateNamePipe()...
具体自己想一想,不是很难的。
这些函数我都知道,也查过帮助,但是,没找到哪一个提供非阻塞方式,以及怎样超时退出。如果是在unix下,我有两种办法可以实现:
第一种,将管道设置成非阻塞方式,自己定时。
第二种,将管道设置成阻塞方式,调用select()函数。但是,Windows下的管道功能不一样,没有这些功能,也许是我不知道,也许是Windows太弱。还请高手指点!
DWORD WaitForSingleObject(
HANDLE hHandle, // handle to object
DWORD dwMilliseconds // time-out interval
);
可以超时返回.
但是在WIN32的管道里可以这样请看我这个帖子里的回答http://expert.csdn.net/Expert/topic/1149/1149047.xml?temp=.2565119
虽然看起来不如unix下的好用。