我刚从WinXP转到Win7。 我的软件需要对I / O进行实时响应,因此它会在一个线程中进行忙等待(它具有在一个CPU上运行的亲和力)。
结果是其中一个内核100%CPU,其他内核0%CPU,在Winows XP上运行得很好。 在Windows 7中,系统冻结。 (该软件是一个控制台应用程序,对于Windows应用程序,它的行为有点不同。只有当主线程忙而等待而不会偷看它冻结的消息时)
有什么想法吗?
答案 0 :(得分:1)
因此,您正在使用非实时操作系统进行实时I / O.简单地说代码运行不正常,应该执行非忙等待(更改为睡眠等待)循环并将线程计时器设置更改为实时足够的。
在计时器回调中查看此问题以设置毫秒精度的窗口。
How to trigger a C# function at a certain time with millisecond precision?