CMD中的并行/多线程

Dan*_*411 1 parallel-processing multithreading cmd dos batch-file

我需要同时运行一个计数器和一个计时器,但我不确定如何实现它。

我有一个批处理文件,它计算在 goto 的简单循环中按下任何键的次数,一旦它第一次完成(按键),它就会触发一个计时器 1 分钟;那个时候按下的键,必须存储在另一个变量中。

我的问题是我不知道如何让循环在计时器计数时继续运行,因为我尝试了两个选项但没有成功:

  • 在按键触发计时器后调用(在同一个 CMD 窗口内,对我来说是最好的)计时器,但它会等到计时器完成。
  • 在新窗口中启动计时器(如果没有机会并行运行,我想到的方法);并且要循环知道计时器已完成,我尝试在前后切换全局变量,但我无法设法使其在主窗口中保留提示窗口中设置的最后一个值(带有计时器的值) )。
  • 希望我解释了自己的正确性,有人可以帮助我,谢谢,丹。

    Ofi*_*zon 6

    您可以在一个 cmd 会话中运行并行线程。使用带有 /B 参数的 start 命令,它将在当前 cmd 窗口中启动您的批处理。

    Start /B myBatch.bat param1 param2 ... 
    
    Run Code Online (Sandbox Code Playgroud)

    您可以在 myBatch.bat 在后台运行时继续工作(并输出到当前窗口)。

    注意 ^C 不会杀死它,只会 ^Break。

    确保任务被终止的最简单方法是使用 exit 命令结束 myBatch.bat。