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;
// µ±Ç°´¦ÀíµÄÊý¾Ý¶ÔÏñ¡£
&
Ïà¹ØÎĵµ£º
µÚÒ»ÖÖ·½·¨£º
µÚÒ»²½£º ÐÞ¸ÄÊôÐÔ
1¡¢kind -> dtktime Ò²¿ÉÒÔÊÇdtkdate µ«ÊÇÔÚÓÃdtkdateµÄʱºòÐèÒª½«datemodeÊôÐÔÐ޸ijÉdmUpDown
2¡¢parseinput -> true
µÚ¶þ²½£ºÔÚonUserInputʼþÖÐдһ¾ä´úÂë
DateTimePicker1.DateTime:=DateAndTime;
×¢£ºÒÔÉÏ·½·¨ËäÈ»¿ÉÒԴﵽĿµÄ£¬µ ......
Èç½ñRealPlayerµÄÁ÷ʽýÌåÎļþÒÔÆäÇ¿´óµÄÊÓÆµÑ¹Ëõ±ÈÕýÖð²½ÇÄÈ»ÐËÆð¡£RealPlayer Plus²¥·ÅÆ÷Ò²ÀíËùµ±È»µØ³ÉΪ´ó¼Ò²¥·ÅRealPlayer¸ñʽÎļþµÄÊ×Ñ¡Èí¼þ¡£²»¹ýRealPlayer PlusÒ²²»ÊÇʮȫʮÃÀµÄ£¬±ÈÈçÆô¶¯Ê±¼äÂý£¬Õ¼Óÿռä´ó£¬ÁôÓÐÀúÊ·¼Ç¼µÈµÈ¡£ÆäʵÎÒÃÇ¿ÉÒÔÀûÓÃDelphi´òÔìÒ»¸öÍêÈ«·ûºÏ×Ô¼ºÒªÇóµÄRealPlayer² ......
ÎÒÔÚÎÄÕ¡¶DelphiͼÏñ´¦Àí -- ͼÏñ¾í»ý¼°¸ß˹ģºý¡·ÖУ¬½éÉÜÁËÀûÓÃͨÓõÄͼÏñ¾í»ý¹ý³Ì¶ÔͼÏñ½øÐиß˹ģºý´¦Àí£¬Æä´¦ÀíЧ¹û»¹²»´í£¬´¦ÀíСÐÍͼÏñʱ¸Ð¾õÒ²»¹ÐУ¬µ«ÊÇ´¦Àí½Ï´óͼÏñʱµÄËÙ¶È»¹ÊÇÏÓÂý£¬ÔÚÎÒµÄP4 2.8G¡¢1GÄÚ´æµÄ»úÆ÷É϶ÔǧÍòÏñËØÍ¼Ïñ½øÐÐQ=3£¬R=5µÄ¸ß˹ģºý´¦Àí£¬²»°üÀ¨Í¼Ïñ×°ÔØºÍǰÆÚÊý ......
TMS Scripter£ºÖ§³ÖPascalºÍVBScriptÁ½ÖÖÓï·¨¡£ÓŵãÊÇÎĵµÆëÈ«¡¢Àý×ÓÆëÈ«£¬½Å±¾¿ÉÖ±½ÓÖ§³ÖDLL£¬¹Ù·½»¹ÌṩÁ˷ḻµÄIDE Debug¹¤¾ß¡¢µ¥Ôªµ¼³öº¯Êý¹¤¾ßµÈ£¬È±µãÊDZàÒëÔËÐнÏÂý¡£for ¿ÕÑ»·1000Íò´Î£¬ÐèÒª10ÃëÖÓÒÔÉÏ¡£TMS ScripterÊÇÉÌÒµ¹²ÏíÈí¼þ¡£
FastScript£ºÓùýFastReport±¨±íµÄÍ¬Ñ ......