在尝试了很多东西之后,我打开了这个新线程。我的应用程序(VS2010 上的 C++)必须抓取图像,详细说明图像,通过 UDP 发送结果。问题是频率:200次/秒。所以我有一个相机,它以 200Hz 的频率在双缓冲区中记录图像,我必须在 5 毫秒内详细说明图像。该应用程序在 99,999 % 的时间内工作,但我认为 Win7 Pro 取消了我的实时优先级,因此在 100000 例中有 1 例出现问题。看msdn论坛之类的,我只能用:
- SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS); 在以管理员权限启动进程时获得进程的实时优先级
- SetThreadPriority(HANDLE, THREAD_PRIORITY_ABOVE_NORMAL); 或 THREAD_PRIORITY_HIGHEST 或 THREAD_PRIORITY_TIME_CRITICAL。
现在,我启动了 5 个线程(_beginthreadex),并且在相机的已编译 DLL 中启动了几个线程。我认为如果我为我的所有 5 个线程设置时间关键优先级,它们中的任何一个都没有比其他线程更高的优先级。
所以我有两个问题:
- 我可以在没有 Windows 滞后的情况下以 200 Hz 的频率工作吗?
- 你对我的线程设置有什么建议吗?
谢谢!!再见保罗