AlirezaBahredar
پنج شنبه 21 شهریور 1387, 17:01 عصر
با سلام .....
شاید سوالی رو که مطرح می کنم سئوال خیلی از دوستان باشه(البته به ظن این حقیر).
شاید دیده باشید که در بسیاری از برنامه های استاندارد بالفرض مثال آنتی ویروس ها ، برنامه زمان اسکن کردن یک پارتیشن عملیات I/O بسیار سنگینی انجام می دهد.اما در عین حال شما براحتی وبدون Freeze شدن برنامه می توانید با قسمتهای دیگر برنامه مثل قسمت قرنتینه-قسمت Setting - حتی قسمت Update برنامه کار کنید.بدون آنکه برنامه پیغام Not responding رو بده.
منطقا این برنامه ها بدلیل ماهیت عملیاتشون بایستی از مفاهیم Multi Threading و مدیریت نخها استفاده کنند تا بتوانند از زمان CPU به بهترین نحو استفاده کنند.
من منکر این موضوع نیستم،اما در یک برنامه ساده خواستم این شیوه رو پیاده سازی کنم.اما نتیجه هیچ گاه همانند این برنامه ها حاصل نشده.با توجه به این موضوع که عملیات I/O من بسیار بسیار از نظر حجمی و باری که به CPU وارد می نمود کمتر از عملیات Chacking یک آنتی ویروس بود.
در برنامه من بنا بود یک IP Address با دستور Ping چک شود و در حین انجام این عملیات فرمی نمایش داده شود که به کاربر این آگاهی را بدهد که سیستم در حال کار می باشد.
با استفاده از یک نخ عملیات نمایش فرم انتظار را نمایش دادم.با اینکه روی فرم فقط یک Animation GIF ساده بود اما برنامه به سختی فرم را با تاخیر چند ثانیه ای و آنهم با زحمت باز نمود.این مطلب رو هم اضافه کنم که من متد synchronization روهم رعایت کرده بودم.اما....
در هر صورت از دوستان بزرگ و صاحب نظر در این حیطه تقاضا دارم در صورت امکان منو راهنمایی کنند.(لطف می کنند که با مثال، عنایتشون رو چندین برابر کنند.)
با تشکر
شاید سوالی رو که مطرح می کنم سئوال خیلی از دوستان باشه(البته به ظن این حقیر).
شاید دیده باشید که در بسیاری از برنامه های استاندارد بالفرض مثال آنتی ویروس ها ، برنامه زمان اسکن کردن یک پارتیشن عملیات I/O بسیار سنگینی انجام می دهد.اما در عین حال شما براحتی وبدون Freeze شدن برنامه می توانید با قسمتهای دیگر برنامه مثل قسمت قرنتینه-قسمت Setting - حتی قسمت Update برنامه کار کنید.بدون آنکه برنامه پیغام Not responding رو بده.
منطقا این برنامه ها بدلیل ماهیت عملیاتشون بایستی از مفاهیم Multi Threading و مدیریت نخها استفاده کنند تا بتوانند از زمان CPU به بهترین نحو استفاده کنند.
من منکر این موضوع نیستم،اما در یک برنامه ساده خواستم این شیوه رو پیاده سازی کنم.اما نتیجه هیچ گاه همانند این برنامه ها حاصل نشده.با توجه به این موضوع که عملیات I/O من بسیار بسیار از نظر حجمی و باری که به CPU وارد می نمود کمتر از عملیات Chacking یک آنتی ویروس بود.
در برنامه من بنا بود یک IP Address با دستور Ping چک شود و در حین انجام این عملیات فرمی نمایش داده شود که به کاربر این آگاهی را بدهد که سیستم در حال کار می باشد.
با استفاده از یک نخ عملیات نمایش فرم انتظار را نمایش دادم.با اینکه روی فرم فقط یک Animation GIF ساده بود اما برنامه به سختی فرم را با تاخیر چند ثانیه ای و آنهم با زحمت باز نمود.این مطلب رو هم اضافه کنم که من متد synchronization روهم رعایت کرده بودم.اما....
در هر صورت از دوستان بزرگ و صاحب نظر در این حیطه تقاضا دارم در صورت امکان منو راهنمایی کنند.(لطف می کنند که با مثال، عنایتشون رو چندین برابر کنند.)
با تشکر