簡體   English   中英

當非活動窗口時應用程序速度降低

[英]Application slows down when not the active window

我的應用程序正在對后台線程設置為最高線程優先級的CSV文件進行一些簡單的讀取和處理。 但是,我注意到,當應用程序不是活動窗口時,該過程將大大減慢速度。 即使打開記事本,閱讀過程也會慢大約10倍,而當我單擊返回到應用程序時,它的速度會恢復到正常速度。

有什么方法可以防止減速的發生? 我以為使用ThreadPriority旨在實現此目的,但似乎沒有達到預期的效果。

嘗試了以下方法:

Thread.CurrentThread.Priority = ThreadPriority.Highest;
System.Diagnostics.Process.GetCurrentProcess().PriorityClass = System.Diagnostics.ProcessPriorityClass.RealTime;
System.Diagnostics.Process.GetCurrentProcess().ProcessorAffinity = (IntPtr)0x0002;

這可能與操作系統的調度程序的行為有關。 它們傾向於使用活動窗口來增加進程的優先級,以增加用戶體驗,從而降低所有其他進程的優先級。

增加線程優先級不起作用,因為此行為與進程有關,因此您可以嘗試提高進程的優先級。

如果這還不能滿足您的要求,您可以嘗試為該進程提供一個單獨的cpu內核。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM