如何确保流程设置为REAL_TIME优先级
How to be sure that the process is set to REAL_TIME priority
我正在Windows XP上使用Visual Studio开发一个控制台C++应用程序,该应用程序的优先级必须尽可能高。
int main()
{
while ( somecondition )
{
// pick data from external hardware every 10 milliseconds
// do computation
}
}
我的意思是,任何其他系统进程都不应该干扰它,因为它是一个实时数据采集系统,每10毫秒刷新一次帧缓冲区。
我试着把每一帧的时间长度保存到一个文件中,我发现在我无序的时间周围有一个奇怪的"量化"。为什么?
我还发现,有时长度是我基本帧时间的倍数,这是由干扰内部O.S.过程引起的吗?
有没有办法确保我的项目具有最高优先级?
您只需要调用SetThreadPriority
我以前是这样的:
HANDLE hThread = GetCurrentThread(void);
SetThreadPriority(hThread, THREAD_PRIORITY_TIME_CRITICAL);
需要注意的是,其他应用程序也可以这样做,所以两个线程的优先级相同。
相关文章:
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 点运算符 (.) 是"real"运算符吗?
- 常量参数"real"常量吗?
- 为什么我会收到"Run-Time Check Failure #2 - Stack around the variable 'pr' was corrupted"错误?
- 解析某些行的文本和输出"time of appearance"
- C ++引用函数参数似乎包含原始对象的副本,而不是充当"real reference"
- 返回time()库函数的数据类型
- 如何将 time-uuid(存储在 boost uuid 中)转换为时间戳/自纪元以来的时间?
- 如何从 boost::p osix_time::p time 获取秒数
- 调用 dll 函数时"Run-Time Check Failure #0 - The value of ESP"
- C++ SRAND(time(0)) 在猜谜游戏中不起作用
- 即使包含 <time.h 后仍"‘CLOCK_PER_SEC’ was not declared in this scope"错误>
- struct TM time;vs TM time = {}.输出相同但不相同?
- 使用 Windows 寄存器查找下一个"Daylight Saving Time"
- c++ get millsecond time
- "Feature X requires run-time support"的含义是什么?
- 如何传递以 "size determined at run time" 作为引用的动态分配数组?
- constexpr - "Evaluate value at compile time"到底是什么意思?
- 实现QProcess的最佳方法是什么,在"real time"中读取stdout和stderr?
- 关于渲染系统架构布局的建议-Real time/HLSL/DirectX9/ c++