微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Windows:小孩死亡时通知崩溃或正常退出

我想弄清楚何时一个subprocess(在Windows上用CreateProcess()创build)崩溃或正常存在。 我将Unix代码移植到Windows,并有很多问题。

我在Unix上使用SIGCHLD,就像这样:

struct sigaction act; bzero(&act,sizeof(act)); act.sa_handler = sig_handler; act.sa_flags = SA_RESTART; sigaction(SIGCHLD,&act,0); void sig_handler(int signal) { int pid,status; if (signal == SIGCHLD) { while ((pid = waitpid(-1,&status,WNOHANG)) > 0) { // Remove pid from a data structure } } }

我正在研究创build一个调用WaitForMultipleObjects的新线程的解决scheme,但问题是可以随时创build新的进程,并且我不认为当创build新进程时可以中断WaitForMultipleObjects。 我不想为每个具有WaitOnSingleObject的进程产生一个新的线程(如果需要的话,我倾向于使用一个线程)。

这种情况下最好的解决scheme是什么?

如何在Windows上复制iTunes风格的窗口?

Windows – 执行没有.exe扩展名的可执行文件(.exe)

在使用Python安装Windows应用程序后重新启动服务器

C ++和Windows:SYstemTIME总是基于公历日历吗?

如何以编程方式使用Windows应用程序将本地networking上的连接代理服务器configuration到Internet

为什么Heroku不能在Windows中接受我的Gemfile.lock?

使用netUserAdd函数创buildWindows用户configuration文件

更改进程优先级不起作用

备用input设备(Midi)不会阻止WinForms应用程序中的屏幕保护程序

“标准用户”帐户上的FFDShowvideo解码器上的system.invalidCastException

实际上有一种方法可以中断WaitForMultipleObjects() 。 使用CreateEvent()创建指定的手动重置事件对象。 将事件句柄与现有的子进程句柄一起包含到WaitForMultipleObjects()中。 每次创建新的子进程时,都用SetEvent()事件。 这样,每当子进程退出(无论出于何种原因)或事件被发信号时, WaitForMultipleObjects()都会退出,然后可以根据需要更新句柄列表,并使用ResetEvent()重置该事件,然后再次调用WaitForMultipleObjects() 。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐