PDA

View Full Version : Thread



majid2230
یک شنبه 01 فروردین 1389, 03:17 صبح
سلام
من برای یه برنامه که حجم محاسباتی بالایی داره نیاز دارم تعداد زیادی thread بسازم(برای کاهش زمان محاسبات) و یه procedure رو با پارامتر های ورودی متفاوت با آنها اجرا کنم مشکل من اینجاست که نمی دونم چه جوری هنگام create کردن thread ها با دستور createthread پارامترهای ورودی مربوط به procedure مربوطه رو بهش بدم آیا امکانش هست با همین روش پارامتر رو هم به procedure ارسال کنم ؟ اگه بله چه جوری ؟ اگه نه آیا روشی که به درد من بخوره هست ؟ اگه هست لطفا بگید .
ممنون

lord_viper
یک شنبه 01 فروردین 1389, 12:02 عصر
این یه کد مشابه هست برای ارسال پارامتر به یک thread امیدوارم کمک کنه



function thread(p: pointer): integer;
begin
Form1.Edit1.Text := ^p;
Result := 0;
EndThread(0);
end;

procedure TForm1.Button1Click(Sender: TObject);
var threadid: cardinal;
s: string;
begin
s := 'bla';
BeginThread(nil, 0, @thread, @s, 0, threadid);
end;

majid2230
دوشنبه 02 فروردین 1389, 01:54 صبح
سلام
ممنون از راهنماییتون ولی من دقیقا کد بالا رو امتحان کردم . به جای متن "bla" داخل تابع کاراکتر دیگه ای گرفتم میشه بگید اشکال کجاست ؟

hadiaj168
دوشنبه 02 فروردین 1389, 09:21 صبح
سلام
این سورس (http://www.barnamenevis.biz/forum/attachment.php?attachmentid=41746&d=1262013316) کپی پوشه ها رو با thread انجا میده.
دو تا متغر DragedFileList,CurentDir رو به thread ارسال میکنه .
امیدوارم سوالتون رو درست فهمیده باشم!