تور لحظه آخری
امروز : سه شنبه ، 13 آذر 1403    احادیث و روایات:  امام رضا (ع):نیکوترین مردم از نظر ایمان، خوش خلق‌ترین و با لطفترین آنها نسبت به اهل خویش است.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

صرافی ارکی چنج

صرافی rkchange

سایبان ماشین

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

پی جو مشاغل برتر شیراز

آراد برندینگ

خرید یخچال خارجی

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

زانوبند زاپیامکس

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

خرید بلیط هواپیما

بلیط اتوبوس پایانه

قیمت سرور dl380 g10

تعمیرات پکیج کرج

لیست قیمت گوشی شیائومی

خرید فالوور

پوستر آنلاین

بهترین وکیل کرج

بهترین وکیل تهران

خرید اکانت تریدینگ ویو

خرید از چین

خرید از چین

تجهیزات کافی شاپ

ساختمان پزشکان

محصولات فوراور

خرید سرور اچ پی ماهان شبکه

دوربین سیمکارتی چرخشی

همکاری آی نو و گزینه دو

کاشت ابرو طبیعی و‌ سریع

الک آزمایشگاهی

الک آزمایشگاهی

خرید سرور مجازی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

لوله و اتصالات آذین

قرص گلوریا

نمایندگی دوو در کرج

خرید نهال سیب

وکیل ایرانی در استانبول

وکیل ایرانی در استانبول

وکیل ایرانی در استانبول

رفع تاری و تشخیص پلاک

پرگابالین

دوره آموزش باریستا

مهاجرت به آلمان

بهترین قالیشویی تهران

بورس کارتریج پرینتر در تهران

تشریفات روناک

نوار اخطار زرد رنگ

ثبت شرکت فوری

تابلو برق

 






آمار وبسایت

 تعداد کل بازدیدها : 1837345645




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

درخواست نحوه پیاده سازی thread ها و ....


واضح آرشیو وب فارسی:سایت ریسک: delphianddotnet28-03-2007, 10:37 AMسلام تا حدودی برنامه نویسی چند لایه رو بلدم .حالا میخوام نحوه پیاده سازی thread ها و اینکه چطوری باید با اونا کار کنیم رو میخوام بدونم.اگه مثال جامع و کامل همراه با توضیح بدید ممنون و سپاسگزار میشم Mahmood_N31-03-2007, 02:03 AMسلام من قبلا قول آموزش این بحث رو داده بدم ولی متاسفانه وقت نشد ( راستش یه بار نوشتم ، دیگه آخراش بود ، برق رفت و دیگه بی خیال شدم ، یعنی وقت نکردم ) ... ولی الان دیگه می نویسم ... خوب ... برای شروع کار اول باید یک کلاس از نوع TThread تعریف کنی ... به کد زیر نگاه کن : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! توی یک بالا یک نوع از TThread ، به عنوان Thread مورد نظر معرفی شد ... خوب حالا باید متغیر ها و کدهایی که توی استفاده از اون به کار می رند رو مشخص کنیم ... برای تعریف متغیر ها ( البته اگه برای استفاده نیاز به متغیر داری ! ) ، باید اون رو بر حسب نیاز در قسمت Private یا Public تعریف کنی ... به کد زیر نگاه کن : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! در قسمتهای Private و Public می تونی Procedure ها رو هم تعریف کنی ... مثلا فرض کن می خوایم یک برنامه بنویسیم که یک فایلی رو از Source ( منظور متغیریه که تعریف میکنیم و مسیر فایل مبدا رو می دیم بهش ) به Destination ( منظور متغیره که تعریف میکنیم و مسیر مقصد رو بهش میدیم ) کپی کنه و همچنین فرض کن برنامه ما یک شی Gauge داره که کپی شدن فایل رو به صورت Progress نمایش می ده ( میشه به جای Gauge از ProgressBar هم استفاده کرد ) ... برای این کار باید یک متغیر از نوع String به نام Source ( مسیر مبدا ) و همچنین یک متغیر به نام Destination ( مسیر مقصد ) تعریف کنیم ... چون باید در جاهایی ( منظور Procedure ها است ) ، غیر از Procedure های مربوط به خود Thread از اونها استفاده کنیم ( برای مقدار دهی ) پس اونها رو در قسمت Public تعریف میکنیم ... بعد از تعریف این متغیرها به چند تا Procedure جدا احتیاج داریم که کارها رو انجام بدند ( کارهایی مثل Progress کردن Gauge و کار اصلی که همون کپی فایل هست ) ... چون نیازی به دستکاری این Procedure ها در جاهای دیگه نیست ، پس اونها رو در قسمت Private تعریف میکنیم ... البته متد ( Procedure ) اصلی که کار کپی رو انجام میده در قسمت Protected قرار می گیره ( بعدا توضیح میدم ) ... تمام Thread ها یک Event دارن به نام OnExecute ( هنگام اجرا شدن ) که کار اصلیشون باید در همون Event باشه ، در توضیحات بالا منظورم از Procedure اصلی همین Event هست ... کد زیر رو ببین : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! در قسمت Private که مشخصه ( متغیرها تعریف شدند ) ، در قسمت Public ما 2 تا Procedure تعریف کردیم ، یکی برای Progress کردن Gauge و یکی هم برای نمایش پیغام ... و در قسمت Protected هم متد Execute رو معرفی کردیم که کد اصلی توی اون قرار میگیره ... اگه دقت کرده باشی ، در مقابل متد Execute ، کلمه Override نوشته شده ، هدف از نوشتن این کلمه اینه که متد اصلی Execute مربوط به خود Thread رو از بین ببره و از متد جدید استفاده کنه ... خوب تا اینجا ما Thread رو ساختیم ، حالا باید کدهای مربوط به Procedure ها رو بنویسیم ، برای هر کدم کد مربوطه رو می نویسیم : برای Progress : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! برای ShowMsg : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! برای استفاده از کد بالا باید یک متغیر از نوع String به نام Mess ( مقدار متن پیغام رو بهش میدیم ) تعریف کنی ( هر جا که خواستی ، توی کد مربوط به فرم یا توی قسمت Private یا Public مربوط به Thread ) تا پیغام دلخواهت رو نشون بدی ... حالا کد اصلی رو توی Procedure مربوط به Execute می نویسیم : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! اگه به کد بالا دقت کنی ، برای فرخوانی توابع تعریف شده ( همون Progress و ... ) از تابع Synchronize استفاده شده ، این تابع درواقع کارش همینه و برای استفاده از Procedure های تعریف شده در یک Thread ، در داخل متد Execute ، باید اید از همین تابع استفاده بشه ( تابع Synchronize رو مینویسیم و بعد نام تابع رو در داخل پرانتز می نویسیم ) ... می تونی آخر کد بالا ، تابع Synchronize رو برای نمایش پیغام ( (Synchronize(ShowMsg ) ، بنویسی و پایان کار رو نشون بدی ... توی کد بالا و در حلقه While ، یعنی مهم ترین مرحله از کپی فایل ، ما چک میکنیم ، که Thread ما Terminate شده یا نه ، مثلا فرض کن ما داریم یک فایل رو کپی می کنیم ، حالا کاربری که داره با برنامه کار میکنه ، روی دکمه Cancel که ما برای متوقف کردن عملیات کپی گذاشتیم کلیک میکنه ، اینجاست که باید Thread ما Terminate بشه و در حلقه ای که توی کد بالا بود ، ما چک میکنیم که اگه Thread ما Terminate شده بود ، از حلقه خارج می شیم ( با دستور Break ) توجه : برای شروع عملیات کپی ( وقتی که روی دکمه مثلا Copy در برنامه کلیک می شه ، باید Thread رو ساخته و کار اون رو شروع کنی ) ، به کد زیر نگاه کن : !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! توی کد بالا در خط اول متغیری که رو که در قسمت Var تعریف کریدم ، به Thread خودمون نسبت میدیم و همزمان اون رو Create میکنیم ... اون True ای که توی پرانتز نوشته شده ، برای اینه که در هنگام ساخت Thread مقدار Suspended اون True باشه ، یعنی به صورت Stop شده ساخته بشه تا بلافاصله بعد از ساخته شدن اجرا نشه !! ، بعد از کمی کار کردن با Thread ها مفهوم اینها رو بهتر می فهمی ، فقط این رو بگم که Thread ها یه جورایی شبیه به تایمر هستند ... توی خط دوم ما خصوصیت FreeOnTerminate مربوط به Thread رو True کردیم ، هدف از این کار اینه که بعد از Terminate کردن ، Thread آزاد بشه و از بین بره ... توی خطهای 3 و 4 هم مسیرهای مبدا و مقصد رو مشخص کردیم و د خط پنجم کار Thread رو شروع کردیم ، یعنی در هنگام ساخته شدن ، اون رو Stop کردیم و بعد Resume ( ادامه ) کردیم ... امیدوارم توضیحات مفید باشه ... یه نمونه هم برات گذاشتم : http://mahmoodn.persiangig.com/document/Delphi/Thread.rar موفق باشی ... delphianddotnet05-04-2007, 11:57 AMسلام محمود جان دستت درد نكنه واقعا" عالي بود. ميتوني برام يه مثال از مولتي تاير ها بزني و برام بفرستي(خصوصي) موفق باشيد سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 355]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن