【发布时间】:2018-10-02 16:06:33
【问题描述】:
我有一个运行无限循环并在该循环中执行一些重要功能的应用程序。我需要为用户提供另一个应用程序,它将以无限循环终止应用程序。问题是如果用户在应用程序处于循环内部执行某些操作时终止应用程序会怎样。这将导致不一致的状态。我尝试了 kill() 和 TerminateProcess 但它们没有帮助。有什么办法可以用无限循环向应用程序发出信号,完成你的迭代并退出?我对 c#、cpp 和 vc++ 中的解决方案持开放态度。
编辑:
循环程序的源代码是可访问的。
【问题讨论】:
-
不需要额外的应用程序来做到这一点。
-
我要求有一个额外的应用程序来做到这一点。无限循环应用程序将在后台运行,并应在用户需要时停止。为什么你们这么快就下结论了??
-
没有明确的细节是不可能回答你的问题的。根据您的评论,请考虑在后台进程中侦听端口。
-
如果不改变循环程序,答案是否定的。如果您可以更改循环程序,请更新问题。
-
有很多方法可以做到这一点,通用术语是进程间通信。可能的方法是: 使用文件的存在作为标志;共享内存;插座;跨进程信号量/互斥体(不是 C++ std::mutex)...等。在一个进程中设置标志;测试,如果设置清除它并在另一个中执行您的操作。
标签: c# c++ windows visual-c++ process