delphiÏ̳߳ء¾×ª¡¿
[code=Delphi(Pascal)]
unit uThreadPool;
{ aPool.AddRequest(TMyRequest.Create(RequestParam1, RequestParam2, ...)); }
interface
uses
Windows,
Classes;
// ÊÇ·ñ¼Ç¼ÈÕÖ¾
// {$DEFINE NOLOGS}
type
TCriticalSection = class(TObject)
protected
FSection: TRTLCriticalSection;
public
constructor Create;
destructor Destroy; override;
// ½øÈëÁÙ½çÇø
procedure Enter;
// À뿪ÁÙ½çÇø
procedure Leave;
// ³¢ÊÔ½øÈë
function TryEnter: Boolean;
end;
type
// ´¢´æÇëÇóÊý¾ÝµÄ»ù±¾Àà
TWorkItem = class(TObject)
public
// ÊÇ·ñÓÐÖØ¸´ÈÎÎñ
function IsTheSame(DataObj: TWorkItem): Boolean; virtual;
// Èç¹û NOLOGS ±»¶¨Ò壬Ôò½ûÓá£
function TextForLog: string; virtual;
end;
type
TThreadsPool = class;
//Ïß³Ì״̬
TThreadState = (tcsInitializing, tcsWaiting, tcsGetting, tcsProcessing,
tcsProcessed, tcsTerminating, tcsCheckingDown);
// ¹¤×÷Ï߳̽öÓÃÓÚÏ̳߳ØÄÚ£¬ ²»ÒªÖ±½Ó´´½¨²¢µ÷ÓÃËü¡£
TProcessorThread = class(TThread)
*******
// ´´½¨Ïß³ÌʱÁÙʱµÄEvent¶ÔÏó, ×èÈûÏß³ÌÖ±µ½³õʼ»¯Íê³É
hInitFinished: THandle;
// ³õʼ»¯³ö´íÐÅÏ¢
sInitError: string;
// ¼Ç¼ÈÕÖ¾
procedure WriteLog(const Str: string; Level: Integer = 0);
protected
// Ïß³ÌÁÙ½çÇøÍ¬²½¶ÔÏñ
csProcessingDataObject: TCriticalSection;
// ƽ¾ù´¦Àíʱ¼ä
FAverageProcessing: Integer;
// µÈ´ýÇëÇóµÄƽ¾ùʱ¼ä
FAverageWaitingTime: Integer;
// ±¾Ïß³ÌʵÀýµÄÔËÐÐ״̬
FCurState: TThreadState;
// ±¾Ïß³ÌʵÀýËù¸½ÊôµÄÏ̳߳Ø
FPool: TThreadsPool;
// µ±Ç°´¦ÀíµÄÊý¾Ý¶ÔÏñ¡£
&
Ïà¹ØÎĵµ£º
ÉÏһƪ£¬½éÉÜÁË×é¼þ¿ª·¢µÄÒ»°ã¸ÅÊö£¬ÒÔ¼°×é¼þÀà²ã´Î½á¹¹µÄ¸÷¸öÀàµÄ´óÖÂÐÅÏ¢£¡ÏÖÔھͿªÊ¼Í¨¹ýʵÀý½øÐÐÀ´¼òµ¥µÄ½²ÊöÒ»ÏÂÒ»°ã×é¼þµÄ¿ª·¢¹ý³Ì£¡ÎÒÕâÀïÏȲÉÓÃ×î
»ù±¾µÄ·½Ê½À´´´½¨Ò»¸ö×é¼þ£¡Ò²¾ÍÊÇʹÓÃDelphi×Ô¼ºµÄ×é¼þ¿ª·¢Ïòµ¼À´½¨Á¢Ò»¸öеÄ×é¼þ¡£ÔÚÕâÀÎÒÒÔÀ©³äTEditΪÀý½øÐн²½â¡£
ÄÇôÊ×ÏÈ£¬Òª½éÉܵľÍÊÇ ......
ÔÚÍøÉÏ¿´µ½ºÜ¶àÈ˶¼ÔÚΪDelphiÊÇ·ñÖ§³ÖC++/JavaÖеľ²Ì¬±äÁ¿¼°¾²Ì¬·½·¨µÄ¹¦ÄܶøÀ§ÈÅ,ÆäʵÕâÔÚDelphiÖÐÊǺܼòµ¥µÄ.
¾²Ì¬·½·¨¾ÍÊÇʹÓÃClass Function. ¾²Ì¬±äÁ¿ÔòʹÓõ¥Ôª¾Ö²¿±äÁ¿À´ÊµÏÖ. ´úÂëÈçÏÂ:
//=========================================
// StaticVarTestU - ¶¨ÒåÁË¿ÉÒÔ¼ÆÊýµÄÀ࣬ͨ¹ýÀà·½·¨¼´¿É·ÃÎÊ´ËÀàµÄ¶ÔÏóÊý ......
delphi TWebBrowser×é¼þʹÓÃÏê½â
¸Ã×é¼þÊÇÒ»¸öä¯ÀÀÆ÷×é¼þ£¬¿ÉÒÔÏÔʾһ¸öÖ¸¶¨µØÖ·µÄÍøÒ³¡¢ÉèÖÃÍøÒ³´ò¿ªÊ±µÄÖ÷Ò³ÒÔ¼°¶ÔÍøÒ³½øÐÐÏà¹ØµÄ²Ù×÷£¬Í¬Ê±Ò²¿ÉÒÔ¶ÔHTMLÎļþ½øÐмôÇС¢¸´ÖÆ¡¢Õ³Ìù¡¢É¾³ýµÈ²Ù×÷¡£¸Ã
×é¼þÔÚInternet×é¼þÒ³ÖС£
  ......
×î½üÃæÊÔÁËÒ»¼ÒÆóÒµ,ÏÂÃæÓÐÒ»µÀ´ÓÀ´Ã»ÓÐÏë¹ýµÄÎÊÌâ,µ±Ê±ÓÐ˼·,²»¹ýд²»³öÀ´.»ØÀ´ºó,µ÷ÊÔÁËÒ»ÏÂ,·¢ÏÖ»¹ÊÇÓÐÄѶȵÄ,дÉÏÀ´¿´´ó¼ÒÊÇ·ñ»¹ÓиüÓÅ»¯µÄд·¨,»¶ÓÌÖÂÛ:
ÏÂÃæÊµÏÖ½«×Ö·û´®"10ad200d3" ÖеÄÊý×ֺϼÆ,10+200+3=213
var s1:string;
var i:integer;
var n1:integer;
var tem1: string;
var tem2:integer;
......
µÚÒ»ÖÖ·½·¨£º
µÚÒ»²½£º ÐÞ¸ÄÊôÐÔ
1¡¢kind -> dtktime Ò²¿ÉÒÔÊÇdtkdate µ«ÊÇÔÚÓÃdtkdateµÄʱºòÐèÒª½«datemodeÊôÐÔÐ޸ijÉdmUpDown
2¡¢parseinput -> true
µÚ¶þ²½£ºÔÚonUserInputʼþÖÐдһ¾ä´úÂë
DateTimePicker1.DateTime:=DateAndTime;
×¢£ºÒÔÉÏ·½·¨ËäÈ»¿ÉÒԴﵽĿµÄ£¬µ ......