تجربیات یک مهندس برق
صفحات وبلاگ
کلمات کلیدی مطالب
برنامه نویسی چند سر نخی(Multi Thread Programming)
ساعت ٢:۱٢ ‎ق.ظ روز ۱۳۸٥/۱/۱٩  کلمات کلیدی:

 چنانچه با این مبحث برنامه نویسی تحت ویندوز آشنایی نداشته باشید احتمالا قبلا با مشکلاتی در این زمینه روبرو شده اید.اکثر برنامه ها ونرم افزارهای تحت ویندوز اعمال خود را در سرنخ (Thread)های جدا انجام می دهند .


در واقع هرThreadمحل انجام قسمتی از برنامه است که با برنامه اصلی تلاقی ندارد.به این معنی که برنامه اصلی قسمتی از وظایف خود را به یک  Threadواگذار می کندتا خودش به اجرای وظایف دیگری بپردازد.به این ترتیب هم برنامه اصلی و هم  Threadهای آن همزمان به اجرای برنامه خود ادامه می دهند.این قابلیت به برنامه شما اجازه می دهد که درآن واحدبه انجام چندین وظیفه بپردازد.

فرض کنید بخواهیم فرمی طراحی کنیم که دارای دو دکمهButton1وButton2باشد.قرار بر این است که با کلیک کردن بر روی دکمهButton1،پس از 10ثانیه کپشن(Caption)دکمه Button1بهOK تغییر کند.همچنین با کلیک کردن روی دکمهButton2  ،کپشن این دکمه نیز"OK"شود.تا اینجا مشکلی وجود ندارد.کارهای خواسته شده را می توان در رویداد کلیک دکمه ها نوشت.برای ایجاد تاخیر هم می توان از تابع Sleepکه از توابع API ویندوزدر کتابخانه kernel32.dll است استفاده کرد.اما مشکل آنجا پیش می آید که بخواهیم در طول 10 ثانیه تاخیرمربوط بهButton1دکمهButton2را کلیک کنیم.این عمل با راه حل قبل امکانپذیر نیست.چرا که در طول این 10ثانیه،برنامه مشغول اجرای رویدادکلیک Button1 است.بنابراین به کلیک  Button2پاسخ نمی دهد.برای حل این مشکل می توان کد برنامه مربوط بهButton1رادریکThreadاجرا کرد تاازبرنامه اصلی پروسس نگیرد.

اکثر زبانهای برنامه نویسی تحت ویندوزامکان ایجادThreadرا دراختیاربرنامه نویس قرارمی دهند.من خودم چون با C++ Builderکار می کنم،برای برنامه نویسان دلفی وC++ Builderعرض کنم که می توانند برای ایجادThreadدر برنامه از طریق File|New|Thread Objectاقدام کنند.توضیحات تکمیلی را نیز می توانند ازHelpنرم افزار بگیرند.


 
نویسندگان وبلاگ:
کدهای اضافی کاربر :