0

我正在尝试mysql.exe优雅地退出,它是使用CreateProcess()Windows API 创建的。我的问题是mysql.exe没有被杀死。如果我在主线程休眠一段时间后终止该进程,那么我正在写入其 INPUT 流(使用管道)的数据库“转储”不会正确应用。

我将FLUSH TABLES; EXIT;作为最后一个命令发送到输入流。

4

2 回答 2

1

不要使用TerminateProcess.

而是发送你的FLUSH_TABLES; EXIT;命令,并使用WaitForSingleObject(hProcess)它来等待它完成它正在做的事情。

于 2013-01-29T16:48:57.680 回答
0

两个答案:

  1. FLUSH TABLES;EXIT;\n在写入输入文件流时使用。工作正常

  2. 继承句柄使用安全属性和SetHandleInformation(). 这个请参考msdn

于 2013-01-30T10:06:38.980 回答