我正在尝试从Windows API使用mysql.exe
优雅地退出CreateProcess()
。我的问题是mysql.exe
没有被杀死。如果我在主线程休眠一段时间后终止进程,那么我正在写入其INPUT流(使用管道)的数据库“转储”未正确应用。
我发送FLUSH TABLES; EXIT;
作为输入流的最后一个命令。
答案 0 :(得分:1)
请勿使用TerminateProcess
终止该进程。
而是发送FLUSH_TABLES; EXIT;
命令,然后使用WaitForSingleObject(hProcess)
等待它完成正在执行的操作。
答案 1 :(得分:0)
两个答案:
写入输入文件流时使用FLUSH TABLES;EXIT;\n
。工作正常
继承句柄
使用安全属性和SetHandleInformation()
。请参阅msdn了解