PDA

View Full Version : حرفه ای: نحوه نمایش پنجره Waiting



kh1387
پنج شنبه 20 خرداد 1389, 18:01 عصر
با سلام خدمت دوستان عزیز
من در برنامه ام عملی را انجام می دهم که کمی طول می کشد و میخواهم در این مدتی که طول میکشد، کاربر را مطلع کنم که صبر کند.
باید چطوری این عمل رو پیاده سازی کنم؟
متشکرم

Peyman.Gh
پنج شنبه 20 خرداد 1389, 19:13 عصر
بنظرم از Thread.Sleep استفاده کنید :متفکر:

mehdi.mousavi
پنج شنبه 20 خرداد 1389, 19:19 عصر
سلام.
شما برای این منظور، باید یک Thread جداگانه ای داشته باشید و عملیات طولانی مدت خودتون رو در اون اجرا کنید. در Main Thread برنامه نیز Window ای خواهید داشت، که طبق روال عادی به کار خودش ادامه میده و با گرفتن Notification ای از Worker Thread شما، کار خودش رو تموم کرده و از روی صفحه برداشته میشه.

لطفا دنبال عبارت Splash Screen در این سایت، یا CodeProject جستجو کنید، با مثالهای فراوانی روبرو خواهید شد. این، یکی از اون مقالات هستش (http://www.codeproject.com/KB/cs/prettygoodsplashscreen.aspx) که ایده مزبور رو بهتون میده.

موفق باشید.

kh1387
پنج شنبه 20 خرداد 1389, 22:33 عصر
سلام.
شما برای این منظور، باید یک Thread جداگانه ای داشته باشید و عملیات طولانی مدت خودتون رو در اون اجرا کنید. در Main Thread برنامه نیز Window ای خواهید داشت، که طبق روال عادی به کار خودش ادامه میده و با گرفتن Notification ای از Worker Thread شما، کار خودش رو تموم کرده و از روی صفحه برداشته میشه.

لطفا دنبال عبارت Splash Screen در این سایت، یا CodeProject جستجو کنید، با مثالهای فراوانی روبرو خواهید شد. این، یکی از اون مقالات هستش (http://www.codeproject.com/KB/cs/prettygoodsplashscreen.aspx) که ایده مزبور رو بهتون میده.

موفق باشید.
این پروژه خیلی سنگینه
کلی مطلب داره.
پروژه راحت تری نیست؟
بازهم متشکرم

Saeed.Masoumi
جمعه 21 خرداد 1389, 01:18 صبح
سلام.
لطفا دنبال عبارت Splash Screen در این سایت، یا CodeProject جستجو کنید،
موفق باشید.
مثلا این (http://barnamenevis.org/forum/showpost.php?p=610009&postcount=154) از همین سایت

reza_stb2002
جمعه 21 خرداد 1389, 01:40 صبح
سلام
من فکر میکنم استفاده از Background worker خیلی ساده تره وشما خیلی راحت متونی درصد پیشرفت کارتو ببینی
آموزش Background worker (http://www.barnamenevis.org/forum/showthread.php?t=200544)

محمد متاله
جمعه 21 خرداد 1389, 03:19 صبح
می توانید از بک گراند ورکر استفاده کنید آن را بر روی فرم درگ کنید و از ایونت های آن استفاده کنید من در پروژه ای که می خواستم حدود 6000 آیتم درون دی وی دی ها زا به برنامه ام کپی کنم از این کامپوننت استفاده کردن تا برنامه ام قفل نکند همچنین تا هنگامی که بک گراند کارش را تمام نکرده بود بعضی از کلیدها را نیز غیر فعال کردم تا کاربر نتواند درخواستش را برای خواندن این اطلاعات تکرار کند پس از خواندن این اطلاعات در ایونتی که این کامپوننت ریز می کند آنها را دوباره فعال کردم

منظورم از ایونت
event می باشد

کامپوننت BackGround Worker از کامپوننت های پیش فرض ویژوال استودیو می باشد