【问题标题】:Synchronizing 2 windows applications to start at the same time同步 2 个 windows 应用程序同时启动
【发布时间】:2019-03-20 21:54:50
【问题描述】:

我在 Windows 中有 2 个不同的可执行文件需要同时执行。

我们可以为 Windows 使用哪种同步机制来确保 2 个进程几乎同时启动? 进程运行的时间较短,因此在第一次启动后手动运行第二个应用程序不是一种选择。

【问题讨论】:

  • 甚至 bat 执行这 2 个 exe 的文件
  • 不是bat文件串行执行吗?
  • 你可以在 bat 中写入 - start app1.exe start app2.exe - 结果 app1.exe 和 app2.exe 同时启动。如果您不想自己编写代码,这是正常的解决方案。你能跑题并运行调用CreateProcessW但在bat文件中使用start命令的小应用程序最简单的解决方案和enouth
  • 当然你需要使用start 命令。不是 bat 上的 app.exe 行(这将等待 app.exe 终止)而是 start app.exe 行 - 这不会等待

标签: windows process synchronization executable


【解决方案1】:

同时启动两个进程的最接近方法是几乎同时执行它们:

  • 使用CreateProcess 使用包含CREATE_SUSPENDED 标志的dwCreationFlags 参数创建两个进程。

    新进程的主线程以挂起状态创建,直到调用ResumeThread函数才运行。

  • 所以在成功创建两个进程后,立即使用ResumeThread 依次启动它们

应该很简单。

【讨论】:

  • 想想如果我们在没有 CREATE_SUSPENDED 标志和 ResumeThread 的情况下调用 CreateProcess - 这在实践中没有任何变化
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多