هل يتم تحرير ال Thread عند انهاء عمل البرنامج ؟
#5
نعم, : يفترض انك فهمت أنه عند إنها البروسس سيتم إنهاء كل الـ Threads الصادرة منه من طرف النظام .

ولكن لو لم يتم التحرير,, ماذا يحدث ؟ : بالطبع سيتم مواصلة معالجة التعليمات الخاصة بالثريد .

هل يشكل عبئ على الجهاز ؟ : كل التعليمات و الأوامر يتم معالحتها من طرف MP & آلية المعالجة لنظام التشغيل .... فالأمر هنا نسبي !!! .

وكيف يحرر, بعد اغلاق البرنامج ؟ : بواسطة الخاصية Terminate أو الهادم Destroy (الصنف THread)
او TerminateThread (نظام Win) .

هل ينفع شئ آخر غير الريستارت للجهاز ؟ : أظنك تقصد مادا يمكننا فعله بالـ THread ... ببساطة
و فكرة عامة هو تايمر ضئيل الدور < 1ms ... الأن تخيل ماذا يمكنك فعله (بحث عن ملفات , قراءة من ملف , نسخ , تزامن إجرائين أو اكثر في نفس الوقت , .... الخ) .

======================================================
عملت المثال على السريع .. بحيث يمكنك متابعة الـ THreads الصادرة من كل بروسس تحدده (شغال)
لكي تتأكد :

[صورة: 56485.jpg]

PHP كود :
{$Hints Off}
{
$Warnings Off}
{
$Optimization On}
Type
   ProcTab
=Array [0..100]Of DWORD;
Var
 
PProc:ProcTab;
 
i:Byte;
 
Proc: TProcessEntry32;

ProCedure TForm1.GetProcList;
Var
   
Handle: THandle;
begin
Handle
:=CreateToolHelp32SnapShot($00000002, 0);
Proc.dwSize:=Sizeof(TProcessEntry32);
while 
Process32Next(Handle, Proc) do
 
Begin
 ProcList
.Items.Add(Proc.szExeFile);
 
PProc[i]:=Proc.cntThreads;
 
Inc(i);
 
End;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
I
:=0;
GetProcList(Proc);
end;

procedure TForm1.ProcListClick(Sender: TObject);
begin
with Proc
,ProcList,Label1 do
   
begin
   caption 
:= inttostr(PProc[ItemIndex]);
   
end;
end; 

بالتوفيق ,,
I'M Fly Like A G6

الرد


الردود في هذا الموضوع
هل يتم تحرير ال Thread عند انهاء عمل البرنامج ؟ - بواسطة TF6M - 10-12-2009, 08:26 PM

التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم