program test
call system("notepad")
.......... !next task
end program
此程序打开记事本,然后在我手动关闭记事本之前不会继续执行“下一个任务”。但我希望整个程序完全执行,记事本仍然打开。
有办法吗?
答案 0 :(得分:3)
在Windows上(您可能正在使用,因为记事本是一个常见的程序)用
替换相应的行call system("start notepad")
这适用于Windows 8.1上的g95和gfortran。微软称start"启动一个单独的命令提示符窗口来运行指定的程序或命令"。
答案 1 :(得分:0)
有很多方法可以做到这一点。由于@ S.Ahn评论EXECUTE_COMMAND_LINE
具有异步执行(使用WAIT
参数)。但是,它是否实际上是异步运行依赖于处理器。
另一种方法是使用一些线程。您可以在OpenMP中使用tasks,它们位于标准版本3.0中。
我将POSIX threads用于类似目的。然后,您只需在线程内部执行call system()
或等效操作。这个库有Fortran包装器,例如https://github.com/ohm314/forthreads