【发布时间】:2011-05-20 14:20:23
【问题描述】:
我创建了两个管道用于子进程和父进程之间的通信。一根用于 STDIN,一根用于 STDOUT。
我想注册 STDIN 的回调函数。如果任何数据到达管道,我的回调应该被调用。可以在windows中完成吗。或者唯一的选择是使用线程,一个用于 STDIN,一个用于 STDOUT?
请推荐
【问题讨论】:
-
你使用什么编程语言?
我创建了两个管道用于子进程和父进程之间的通信。一根用于 STDIN,一根用于 STDOUT。
我想注册 STDIN 的回调函数。如果任何数据到达管道,我的回调应该被调用。可以在windows中完成吗。或者唯一的选择是使用线程,一个用于 STDIN,一个用于 STDOUT?
请推荐
【问题讨论】:
ReadFileEx 允许您设置回调。但请注意,回调 APC 仅在您的线程进入可警报等待时处理,它们不像 Unix 信号那样异步。
而且回调是一次性的,如果您对未来的数据感兴趣,您的回调处理程序需要再次调用ReadFileEx。
【讨论】: