如何降低程序运行的优先级 |
答題得分者是:aftcast
|
leonli80
一般會員 ![]() ![]() 發表:29 回覆:27 積分:11 註冊:2006-08-01 發送簡訊給我 |
我在做一个双萤幕的程式。第一个显示屏跑A程式(收款),第二个显示屏显示B程式(播放图片幻灯片)。
两个程式各自独立。 现在发现B程式在幻灯片切换的时候,瞬间占用CPU资源过大,导致我A程式在操作的时候会用卡住的感觉。 请教如何能设置将B程式级别调低,优先运行A程式,先谢谢各位了。 下面是B程式播放幻灯的部分代码,主要就是这段代码导致A程序的界面卡顿。 [code delphi] begin X0:=Bitmap1.Width div 2; Y0:=Bitmap1.Height div 2; for i := 0 to Global.SlideStep do begin MidX := Round(RatioX*I*0.5); MidY := Round(RatioY*I*0.5); BitBlt(Image1.Canvas.Handle, X0-MidX, Y0-MidY, Round(RatioX*I),Round(RatioY*I), Bitmap1.Canvas.Handle, X0-MidX, Y0-MidY, Rop); Image1.Repaint; end; end; [/code] |
aftcast
站務副站長 ![]() ![]() ![]() ![]() ![]() 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
|
leonli80
一般會員 ![]() ![]() 發表:29 回覆:27 積分:11 註冊:2006-08-01 發送簡訊給我 |
===================引 用 aftcast 文 章=================== 試repaint後加Sleep(10) sftcast: 您好,加了Sleep以后果然有了效果,CPU占用率会降下来一些,明天我再把程式拿到客户的电脑上去跑一下看看。谢谢啦! 另外,我又加了一些东西,请帮我看一下对我的程式有没有效果。 1、使用Setpriorityclass(GetCurrentProcess(), IDLE_PRIORITY_CLASS); 把优先级降低 2、在FormCreate 时设置 DoubleBuffered := true; 3、 procedure Tfr_main.WMEraseBkgnd(var Message: TWMEraseBkgnd); begin Message.Result := 1; end; |
pcplayer99
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:146 回覆:790 積分:632 註冊:2003-01-21 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |