后台计算线程优先级降为低于正常,确保拖动时 UI 优先获得 CPU
派生曲线计算是可延迟的后台工作,不能与 UI/绘制线程抢核。后台线程池的每个线程设为 THREAD_PRIORITY_BELOW_NORMAL,UI 线程需要运行时系统优先调度 UI,计算只在 UI 空闲时占用 CPU。
This commit is contained in:
1 parent
226943921b
commit
709cbe4a87
2 files changed
+6
-1
No files matched your search
@@ -2395,6 +2395,11 @@ namespace jdi
|
||||
|
||||
void PlotView::CurveWorkerLoop() const
|
||||
{
|
||||
// 后台计算线程的优先级降到「低于正常」:派生曲线计算是**可延迟的后台工作**,
|
||||
// 绝不能让它在拖动时与 UI / 绘制线程抢 CPU。降低优先级后,只要 UI 线程要运行,
|
||||
// 系统就会优先调度 UI;计算只在 UI 空闲时占用 CPU,从而保证交互始终跟手
|
||||
//(用户明确要求"无论如何 UI 及控件的响应需要是跟手的")。
|
||||
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_BELOW_NORMAL);
|
||||
for (;;)
|
||||
{
|
||||
CurveJob job;
|
||||
|
||||
Reference in new issue
Block a user