ورود

View Full Version : مشکل : پاس دادن مقدار در ایجاد ترد



me_kabiri
پنج شنبه 12 بهمن 1385, 17:00 عصر
سلام دوستان
من می خواهم با استفاده از ای پی آی CreateThread یک ترد ایجاد کنم
لذا تابعی را با استفاده از این ای پی آی فراخوانی می کنم
تابع فوق پارامتر نیز دارد و این پارامتر را باید از طریق ای پی آی فوق ارسال کنم ولی هر کاری می کنم مقدار پارامتر به تابع نمی رسد
پیشاپیش از دوستان محترم تشکر می کنم

نمونه سورس




Function Fun(Port:Word):integer;
Begin


End;


var
Th:Thandle;
Th_ID:Longword;
param:Word;


param:=15;
Th:=CreateThread(NIL,0,@Fun,@Param,0Th_ID);

Hamid_PaK
جمعه 13 بهمن 1385, 06:30 صبح
بجای پارامتر از متغییرهای عمومی استفاده کنید ...

یا حق ...

me_kabiri
شنبه 14 بهمن 1385, 07:14 صبح
متشکرم از پاسختان
استفاده از متغیرهای عمومی مشکلات خاص خودش را دارد
دقیقا نمی توان مدیریتش کرد

vcldeveloper
شنبه 14 بهمن 1385, 07:52 صبح
استفاده از متغیرهای عمومی مشکلات خاص خودش را دارد
دقیقا نمی توان مدیریتش کرد
در هر حال باید متغیر مورد نظر در بخشی از حافظه قرار داشته باشه که در طول اجرای Thread بشه بهش دسترسی داشت. وقتی متغیر رو بصورت Local معرفی می کنید، با خروج از تابع و قبل از اتمام کار Thread، متغیر آزاد میشه و اشاره گری که به اون اشاره می کرد، غیر معتبر میشه!