我创建C#
了处理核心移植的项目C++
- 核心只是完成这项工作 - 获取简单数据,处理它并再次返回一些结果作为简单数据。
作为控制台应用程序运行时,此项目可以正常工作:
MainProcess main = new MainProcess();
main.Run(); //starts thread with main
main.Join(); //prevent main thread from terminating
当我将其更改为作为最简单的 Windows 进程运行时,MainProcess main = new MainProcess();
在初始化、main.Run()
启动和main.Abort() \\ aborts thread with main
停止时,核心停止正常工作。
核心是一些确定性启发式,除了它自己什么都不知道。当整个应用程序作为服务运行时,它会获得相同的数据,但返回更差的结果。
我检查了,这不是一些权限问题。
你知道可能出什么问题吗?与这一小改动完全相同的代码。对于相同的数据,它总是返回相同的结果(所有控制台执行相同,所有 Windows 服务执行相同)。
所以我的问题是:当程序作为控制台应用程序或 Windows 服务运行时,它有什么不同?