با سلام خدمت دوستان عزیز
من در برنامه ام عملی را انجام می دهم که کمی طول می کشد و میخواهم در این مدتی که طول میکشد، کاربر را مطلع کنم که صبر کند.
باید چطوری این عمل رو پیاده سازی کنم؟
متشکرم
با سلام خدمت دوستان عزیز
من در برنامه ام عملی را انجام می دهم که کمی طول می کشد و میخواهم در این مدتی که طول میکشد، کاربر را مطلع کنم که صبر کند.
باید چطوری این عمل رو پیاده سازی کنم؟
متشکرم
بنظرم از Thread.Sleep استفاده کنید
سلام.
شما برای این منظور، باید یک Thread جداگانه ای داشته باشید و عملیات طولانی مدت خودتون رو در اون اجرا کنید. در Main Thread برنامه نیز Window ای خواهید داشت، که طبق روال عادی به کار خودش ادامه میده و با گرفتن Notification ای از Worker Thread شما، کار خودش رو تموم کرده و از روی صفحه برداشته میشه.
لطفا دنبال عبارت Splash Screen در این سایت، یا CodeProject جستجو کنید، با مثالهای فراوانی روبرو خواهید شد. این، یکی از اون مقالات هستش که ایده مزبور رو بهتون میده.
موفق باشید.
مثلا این از همین سایت
سلام
من فکر میکنم استفاده از Background worker خیلی ساده تره وشما خیلی راحت متونی درصد پیشرفت کارتو ببینی
آموزش Background worker
می توانید از بک گراند ورکر استفاده کنید آن را بر روی فرم درگ کنید و از ایونت های آن استفاده کنید من در پروژه ای که می خواستم حدود 6000 آیتم درون دی وی دی ها زا به برنامه ام کپی کنم از این کامپوننت استفاده کردن تا برنامه ام قفل نکند همچنین تا هنگامی که بک گراند کارش را تمام نکرده بود بعضی از کلیدها را نیز غیر فعال کردم تا کاربر نتواند درخواستش را برای خواندن این اطلاعات تکرار کند پس از خواندن این اطلاعات در ایونتی که این کامپوننت ریز می کند آنها را دوباره فعال کردم
منظورم از ایونت
event می باشد
کامپوننت BackGround Worker از کامپوننت های پیش فرض ویژوال استودیو می باشد