![]() |
|
مشكل مع thread - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : مشكل مع thread (/showthread.php?tid=1776) الصفحات:
1
2
|
مشكل مع thread - paix144 - 12-03-2010 السلام عليكم إخواني عندي مشكل مع THREAD و هو أنه أحاول عمل increment لكن عند نقر Button يتوقف عند 1 لكن من المفترض أن يتوقف العداد عند 10 الكود سورس في المرفقات مشكل مع thread - TF6M - 12-03-2010 و عليكم السلام و رحمة الله و بركاته قارن و إستنتج الخطأ :tong: .... PHP كود : unit MY_THREAD2;مشكل مع thread - paix144 - 12-03-2010 بارك الله فيك أخي عندي سؤال آخر إن إستسمحت هل Synchronize تنادي الدالة EnParallel يعني تعمل Update ? و ممكن تعطني تعريف لSynchronize و خصوصياتها? و جزاك الله كل خير مشكل مع thread - paix144 - 12-03-2010 السلام عليكم غريب! نفس الخطأ مشكل مع thread - paix144 - 12-03-2010 عفوا الخطأ كان مني قلت التركيز :oops: كود : unit MY_THREAD2;
interface
uses
Classes,Windows,StdCtrls,SysUtils;
type
TMY_THREAD2 = class(TThread)
private
My_Label : TLabel;
{ Déclarations privées }
protected
procedure Execute; override;
public
constructor create(LABEL_Display : TLabel);
end;
implementation
constructor TMY_THREAD2.create(LABEL_Display: TLabel);
begin
FreeOnTerminate:=True;//le thread sera detruit a la fin de l'execution
inherited create(False);//appel au constructor original
My_Label:=LABEL_Display;
end;
procedure TMY_THREAD2.Execute;
var
count : integer;
begin
count :=0;
repeat
Sleep(100);
inc(count);
My_Label.Caption:=IntToStr(count);
until count [color=Red]>=[/color]10;
end;
end.مشكل مع thread - TF6M - 12-03-2010 synchronize لنزامن تنفيذ إجراء ما مع تنفيذ الثريد , في حالة يوجد أكثر من thread تعمل جميعها بشكل متوازي
و لتفادي حالة التداخل, نلجأ لـ الخاصية synchronize , في حالة وجود thread واحد فقط يمكن أن نستدعي الإجراء مباشرة . مشكل مع thread - kachwahed - 12-03-2010 إقتباس :synchronize لنزامن تنفيذ إجراء ما مع تنفيذ الثريد , في حالة يوجد أكثر من thread تعمل جميعها بشكل متوازيهناك شيء أراه مهم لم ننبه عليه بخصوص استعمال مكتبات المكونات VCL، ومحتوى الملاحظة المتضمنة عند إنشاء THread أخي TF6M
مشكل مع thread - TF6M - 12-03-2010 kachwahed كتب : ممكن شرح أكثر أخي kachwahed , هل تقصد حالة الـ blocking ؟. مشكل مع thread - kachwahed - 12-03-2010 التحكم في المكونات من خلال Thread، الملاحظة: كود : Important : les méthodes et propriétés des objets de la VCL peuvent uniquement
être utilisés dans une méthode appelée en utilisant Synchronize, comme :
Synchronize(UpdateCaption);
où UpdateCaption serait de la forme
procedure TMY_THREAD.UpdateCaption;
begin
Form1.Caption := 'Mis à jour dans un thread';
end;مشكل مع thread - TF6M - 12-03-2010 ممكن رابط الموضوع أخي kachwahed ؟. |