Ò»¸öÏ̵߳ÄÓÅÏȼ¶È¡¾öÓÚ´´½¨Ï̵߳Ľø³ÌµÄÓÅÏȼ¶£¨priority class£©ºÍÏ̱߳¾ÉíÏà¶ÔµÄÓÅÏȼ¶£¨relative priority£©¡£
1¡¢½ø³ÌÓÅÏȼ¶£º
²»Í¬²Ù×÷ϵͳ ÓÅÏȼ¶ÊýÄ¿²»Í¬¡£Windows2000ÒÔÉϵİ汾ÁбíÈçÏ£º
Idle£º£¨±êÖ¾£ºIDLE_PRIORITY_CLASS£¬ÖµÎª$40£©£»
Below Normal£º£¨±êÖ¾£ºBELOW_NORMAL_PRIORITY_CLASS£¬ÖµÎª$4000£©£»
Normal£º£¨±êÖ¾£ºNORMAL_PRIORITY_CLASS£¬ÖµÎª$20£©£»
Above Normal£º£¨±êÖ¾£ºABOVE_NORMAL_PRIORITY_CLASS£¬ÖµÎª$8000£©£»
High£º£¨±êÖ¾£ºHIGH_PRIORITY_CLASS£¬ÖµÎª$80£©£»
Realtime£º£¨±êÖ¾£ºREALTIME_PRIORITY_CLASS£¬ÖµÎª$100£©¡£
½ø³ÌµÄȱʡÓÅÏȼ¶ÎªNormal£¬¼¸ºõËùÓг¡ºÏ¶¼²»Ó¦½«ÓÅÏȼ¶ÉèΪRealtime¡£
´´½¨½ø³Ìʱ¸ø¶¨ÓÅÏȼ¶£¬Ö»ÒªÔÚCreateProcessÖУ¬½«ÓÅÏȼ¶±êÖ¾×ö“OR”²Ù×÷£¬ÌîÈëdwCreationFlags²ÎÊýÖС£
È¡µÃ»î¶¯½ø³ÌµÄÓÅÏȼ¶£º
function GetPriorityClass(hProcess:THandle):DWORD;stdcall;
ÉèÖû½ø³ÌµÄÓÅÏȼ¶£º
function SetPriorityClass(hProcess:THandle;dwPriorityClass:DWORD);BOOL;
£¨ÉÏÃæÁ½¸öº¯ÊýµÄhProcessÓÉGetCurrentProcessº¯Ê ......
ADO¶àÏß³ÌÊý¾Ý¿â²éѯͨ³£»á³öÏÖ3¸öÎÊÌ⣺
1¡¢CoInitialize ûÓе÷Óã¨CoInitialize was not called£©£»ËùÒÔ£¬ÔÚʹÓÃÈκÎdbGo¶ÔÏóÇ°£¬±ØÐëÊÖ µ÷ÓÃCoInitializeºÍCoUninitialize¡£µ÷ÓÃCoInitializeʧ°Ü»á²úÉú"CoInitialize was not called"ÀýÍâ¡£
2¡¢»²¼²»ÔÊÐí»æ»£¨Canvas does not allow drawing£©£»ËùÒÔ£¬±ØÐëͨ¹ýSynchronize¹ý³ÌÀ´Í¨ÖªÖ÷Ï̷߳ÃÎÊÖ÷´°ÌåÉϵÄÈκοؼþ¡£
3¡¢²»ÄÜʹÓÃÖ÷ADOÁ¬½Ó£¨Main TADoConnection cannot be used!£©£»ËùÒÔ£¬Ïß³ÌÖв»ÄÜʹÓÃÖ÷Ïß³ÌÖÐTADOConnection¶ÔÏó£¬Ã¿¸öÏ̱߳ØÐë´´½¨×Ô¼ºµÄÊý¾Ý¿âÁ¬½Ó¡£
Delphi2007°²×°ºóÔÚX:\Program Files\Common Files\CodeGear Shared\DataĿ¼ÏÂÓÐÒ»¸ödbdemos.mdbÎļþ£¬ÓÃÀ´×÷Ϊ²âÊÔµÄÀý×Ó¡£dbdemos.mdbÖеÄcustomer±í±£´æÁË¿Í»§ÐÅÏ¢£¬orders±íÖб£´æÁ˶©µ¥ÐÅÏ¢¡£
²âÊÔ³ÌÐòÁ÷³Ì´óÖÂÊÇÕâÑùµÄ£ºÔÚÖ÷´°ÌåÉÏ·ÅTADOConnectionºÍTQuery¿Ø¼þ£¬Æô¶¯Ê±Õâ¸öTQuery´ÓCustomer±íÖвé³ö¿Í»§±àÂëCustNoºÍ¹«Ë¾Ãû³ÆCompany£¬·Åµ½Èý¸öCombox¿òÖУ¬·Ö±ðÔÚÈý¸öÁбí¿òÖÐÑ¡¶¨¿Í»§¹«Ë¾Ãû³Æ£¬°´ÕÕ¹«Ë¾Ãû³ÆËù¶ÔÓ¦µÄ¿Í»§´úÂ뽨Á¢Èý¸öÏß³ÌͬʱÔÚorders±íÖвéѯÏúÊÛÈÕÆÚSa ......
ÉÏÎÄÖУ¬¶àÏß³Ìͬ²½Ö÷´°ÌåµÄLabelµÄCaptionÊôÐÔÖµ£¬·¢ÏÖÒ»¸öÎÊÌ⣺ʹÓÃSynchronizeÓÃÓÚͬ²½µÄʱºò£¬Ö÷´°ÌåºÃÏñËÀµôÒ»Ñù£»¶øÖ±½ÓÓÃ×Ó³ÌÐòΪLabelµÄÒýÓø³Öµ£¬ÔòÓÐʱ»á³öÏÖ“Canvas does not allow drawing”´íÎó¡£ÊéÉÏ˵VCLͬ²½Ò»¶¨ÒªÓÃSynchronize£¬¶ø²»ÄÜÖ±½Ó·ÃÎÊ¡£
²âÊÔ£º
{Ö÷´°Ìå}
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm2 = class(TForm)
Label1: TLabel;
Button1: TButton;
Label2: TLabel;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses TestThread;
{$R *.dfm}
procedure TForm2.Button1Click(Sender: TObject);
begin
TTestThread.Create(Label1);
//TTestThread.Create(Label2);
//TTestThread.Create(Label3);
end;
end.{¶àÏß³ÌÀà}
unit TestThread;
interface
uses
Cla ......
VCL¶ÔÏó²»ÊÇḬ̈߳²È«µÄ£¬¶øÇÒËüÃǵÄÊôÐԺͷ½·¨±ØÐëÒª´ÓVCLÖ÷Ïß³ÌÖнøÐзÃÎÊ»ò±»Ö´ÐУ¬µ«ÓÐÁ½ÖÖVCL¶ÔÏóÊÇÀýÍâµÄÇé¿ö£¬ËüÃÇÊÇḬ̈߳²È«µÄ¡£Ò»ÖÖÊÇÈκÎͼÐζÔÏó£¬ÁíÒ»ÖÖÊÇTThreadList¡£
ÕâÒâζ×Ų»±Ø·ÇµÃÔÚÖ÷VCLÏß³ÌÖвÅÄÜÉèÖÃÒ»¸ö»²¼µÄ»±ÊÑÕÉ«£¬»ò»Ë¢ÀàÐÍ£¬¿ÉÒÔÔÚÁíÒ»¸öÏ̵߳Ļ·¾³ÖÐÍê³ÉÒ»µã¡£¶ÔÓÚͼÐζÔÏó£¬Ê¹ÓÃLockºÍUnLock£¬¶ø¶ÔÓÚThreadList£¬ÔòʹÓÃLockListºÍUnLockList£¬ÕâЩ·½·¨µÄÐÐΪÀàËÆÓÚÁÙ½çÇø£¬ÔÚµ÷ÓÃËüÃǵÄʱºò»á×èÖ¹ÆäËûÏ̵߳ÄÖ´ÐС£ÒòΪLock»áÖжÏËùÓÐÏ̵߳ÄÖ´ÐУ¬ËùÒÔÈç¹ûʹÓò»ÕýÈ·µÄ»°£¬Ó¦ÓóÌÐòÐÔÄÜ»áÓкܴóϽµ¡£±ÈÈ磺
Form1.Canvas.Lock;
For i := 0 to 10000 do
begin
Form1.Canvas.TextOut(20,20,str);
end;
Form1.Canvas.UnLock;ÉÏÃæÕâ¸ö´úÂëÖУ¬LockºóÔÙÑ»·£¬ÔòÑ»·½á¹¹¹ýÓÚÓµ¼·£¬Ëø¶¨Ê±¼ä¹ý³¤¡£ËùÒÔÓ¦¸Ã½«LockÓëUnLock·ÅÔÚÑ»·ÀïÃæ¡£
ÏÂÃæµÄÀý×Ó£¬Í¨¹ý¶àÏ̶߳Դ°Ì廲¼½øÐлÏß¡£µã“¿ªÊ¼”²Ëµ¥´´½¨N¸öÏß³ÌͬʱÍù´°Ìå»Ïߣ¬µã“½áÊø”ͬʱÖÕÖ¹N¸öÏ̡߳£
{Ö÷´°Ìå´úÂë}
unit Main;
interface
uses
Windows, Message ......
¹ØÓÚ½çÃæÃÀ»¯·½Ã棬һֱÊÇÒ»¸öÄÔ¿ÇÌÛµÄÎÊÌ⣡ÒÔǰһֱ͵ÀÁ£¬Ê¹ÓõÄÈý·½¿Ø¼þ£¡µ«ÊÇÔÚʹÓÃÁËÒ»¶Îʱ¼äÖ®ºó£¬¶¼»ò¶à»òÉÙµÄÓÐЩÎÊÌ⣡²»ÊÇÎÒ˵Èý·½¿Ø¼þÈç
ºÎÈçºÎµÄ²»ºÃ£¡Ö»ÊÇÈý·½¿Ø¼þ¶àÊÇÅÓ´óµÄÒ»¸öÖ«Ì壬Ҫ¼æ¹ËµÄÓû§ÈºÌåºÜ¶à£¬ËùÒÔͬʱËüÒª¿¼ÂǵÄÎÊÌâÒ²Ôö¼ÓÁ˺ܶ࣬Ȼ¶øÒ»¸ö³ÌÐò³öÏÖBugÊÇÔÚËùÄÑÃâµÄ£¬ËùÒÔ
Èý·½¿Ø¼þÄÇÅÓ´óµÄÖ«ÌåÔÚ³öÁËÎÊÌâÖ®ºó£¬Ð޸ľÍÏ൱Âé·³£¬Ê×ÏȵÃÞÛ˳¿Ø¼þµÄʵÏÖ¹ý³Ì£¬²ÅÄÜÕÒµ½ÎÊÌâËùÔÚ½ø¶øÐ޸ģ¬ËùÒÔËäÈ»ºÜ·½±ã£¬¿ÉÊÇÔÙÓÐЩʱºòÒ²ÊǺÜÍ´¿à
µÄ£¡ÎÒÓùýµÄÈý·½Æ¤·ô¿Ø¼þ»¹Ëã±È½Ï¶àÁË£¬ÕâÀïÖصã˵Á½¸öºÜÁ÷Ðеģ¬Ò»¸öVCLSkin£¬Ò»¸öBusinessSkinForm£¬ÏàÐŶàÊýÃÀ»¯°®ºÃÕߣ¬¶ÔÕâ
Á½Ì׿ؼþ¶¼²»Ä°Éú£¬ÎÞÂÛʹÓÃÓë×Ô¼ºÐ´Æ¤·ô¿Ø¼þʱºò²Î¿¼£¬¶¼ÊDz»¿É¶àµÃµÄºÃ´úÂ룡ΪʲôÄÃÕâÁ½Ì׿ؼþÀ´×ö˵Ã÷£¬Ö÷ÒªÔÒòÊÇÕâÁ½Ì׿ؼþµÄʵÏÖÔÀí²»Ïàͬ£¬¶øƤ
·ôÃÀ»¯µÄ·½·¨£¬ÎÒËùÖªµÀµÄÒ²¾ÍÕâÁ½ÖÖ·½·¨£¨µ±È»¿ÉÄÜÓÐÆäËûµÄ£¬²»¹ýÎÒ²»ÖªµÀ£¬ºÇºÇ£©£¬ÏÈ˵VCLSkin£¬´ËÌ׿ؼþ£¬²ÉÓõÄÊÇHook£¬½ø¶ø×ÓÀ໯£¬È»ºó
½Ø»ñ¸÷ÖÖÓë½çÃæ»æÖÆÏà¹ØµÄÏûÏ¢½øÐпØÖÆ´Ó¶ø´ïµ½½çÃæÃÀ»¯µÄÄ¿µÄ£¬Õâ¸öʵÏÖÆðÀ´£¬¾ÍÊDz»±Ø×öпؼþ£¬Ö±½ÓHookµ½´°¿Ú¹ý³Ì£¬´¦Àíµô¾ÍÐУ¬µ«ÊÇÓÉÓÚÊÇ
Hook£¬ ......
============================================================================
Windows95ÊÇMicrosoft¹«Ë¾µÄµÚÒ»¸öÕæÕýµÄ¶àÈÎÎñ²Ù×÷ϵͳ¡£ÔÚÿһʱ¿Ì¿ÉÒÔÓжà¸ö½ø³Ìͬʱ¹¤×÷£¬¶øÿһ¸ö½ø³ÌÓÖ°üº¬Óжà¸öÏ̡߳£µ«Ö»ÓÐÒ»¸ö´¦ÀíÆ÷µÄ¼ÆËã»ú²»¿ÉÄÜÕæÕýµØ“ͬʱ”Ö´Ðжà¸öỊ̈߳¬¶øÊDzÙ×÷ϵͳ°Ñʱ¼ä·Ö³ÉÈô¸É¸öʱ¼äƬ£¬È»ºó°ÑÒ»¸ö¸öʱ¼äƬ·ÖÅä¸øÿһ¸öÏ̡߳£
============================================================================
Ò»¸öÖ´ÐÐÁ˵ijÌÐò¾ÍÊÇÒ»¸ö½ø³Ì£¬Ò»¸ö½ø³ÌÔòÖÁÉÙÓÐÒ»¸öÖ÷Ï̡߳£Ò»Î»¸ß¼¶³ÌÐòÔ±£¬¾ø²»»áÈÃ×Ô¼ºµÄ³ÌÐòÀïÃæÖ»ÓÐÒ»¸öÖ÷Ï̴߳æÔÚ£¨³ý·ÇÖ»ÓкÜÉٵļ¸Ê®ÐдúÂ룩£¬¶øÊǾ¡Á¿ÈÃ×Ô¼ºµÄ³ÌÐòÔÚͬһʱ¿ÌÀï¸É¸ü¶àµÄÊ£¬ÔڱȽϴóÒ»µãµÄÓ¦ÓÃÖÐÓÈÆäÈç´Ë£¬ÏóÊý¾Ý¿âÓ¦ÓóÌÐò£¬ÔÚͳ¼ÆµÄʱºòÎÒ»¹Ïë×öÆäËûÊÂÄØ£¡Òò´Ë£¬ÈçºÎÓÐЧµØÀûÓÃÏß³ÌÔòÊÇÿһ¸ö³ÌÐòÔ±¶¼Ó¦Á˽âµÄ¡£±¾Îľʹ˼òµ¥µØ̸һÏÂÔÚDelphiÖÐÈçºÎÀûÓÃÏ̡߳£
----(Ò»)µ±Ê¹ÓÃÏß³Ìʱ£¬ÎÒÃÇÖ÷ÒªÓÐÁ½¸öÈÎÎñ£º
----£¨1£©´´½¨Ò»¸öÏ̡߳£
----£¨2£©´´½¨Ò»¸öÄÜ×÷ΪÏß³ÌÈë¿ÚµÄº¯Êý¡£
----WindowsAPIµ÷ÓÃCreateThreadº¯ÊýÀ´´´½¨Ò»¸öÏ̡߳£º¯ÊýÈçÏ£º
HANDLE CreateThread(LPSECURITY_
ATTRIBUTESlpThr ......