تبلیغات :
ماهان سرور
آکوستیک ، فوم شانه تخم مرغی ، پنل صداگیر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




نمايش نتايج 1 به 5 از 5

نام تاپيک: هنگ نکردن برنامه در زمان کار با دیتابیس

  1. #1
    پروفشنال sari-1369's Avatar
    تاريخ عضويت
    Nov 2007
    محل سكونت
    ساري
    پست ها
    766

    پيش فرض هنگ نکردن برنامه در زمان کار با دیتابیس

    سلام دوستان ، من 2 تا دیتا بیس دارم که گاهی نیاز میشه حجم زیادی از اطلاعات رو بینشون رد و بدل کنم و اینکار حدودا 30 ثانیه طول میکشه . من با زمانش مشکل ندارم ، فقط میخوام وقتی که این عمل داره انجام میشه اگر کاربر رو فرم کلیک کرد با اونرو حرکت داد برنامه هنگ نکنه و یه انیمیشن لودینگ تو این زمان بهش نمایش بدم .

    اولین باری هستش که همچین مساله ای برام پیش اومده ، اگه میشه منو راهنمایی کنید .

    از ترد باید استفاده کنم ؟ بکگراند ورکر ؟ ... ؟


    پیشاپیش ممنون.

    ---------- Post added at 12:10 AM ---------- Previous post was at 12:09 AM ----------

    راستی ، VB.Net

  2. #2
    اگه نباشه جاش خالی می مونه MTPROG's Avatar
    تاريخ عضويت
    Sep 2007
    محل سكونت
    شهر 3500 ساله
    پست ها
    432

    پيش فرض

    در تایپک زیر بحثی مشابه به این مورد شده است

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    در لینک زیر یک نمونه کد وجود داره که حجم زیادی از اطلاعات رو بدون هنگ کردن پردازش میکنه

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

  3. #3
    پروفشنال sari-1369's Avatar
    تاريخ عضويت
    Nov 2007
    محل سكونت
    ساري
    پست ها
    766

    پيش فرض

    اینطور که از تایپیک های پیشنهادی شما متوجه شدم ، منظورتون اینه که از DataReader استفاده کنم .

    تا اینجاش اوکی و مشکلی نیست ولی همونطور که تو اون تا گفته شد ، برای گرفتن این اطلاعات از DR باید از یه حلقه استفاده کرد که همین مدت زیادی میبره و برنامه هنگ میکنه .

    اجازه بدید بگم کلا وایه چه کاری میخوام .

    من توی برنامه ویندوزی اطلاعات حدود 20 جدول SqlServer رو باید به یه بانک کامپکت توی پاکت پیسی انتقال بدم ، و تنها راهش اینه که اطالاعت رو به صورت کلی ( DataTable ) یا سطر به سط (DR ) از بانک برنامه ویندوزی بخونم و به صورت سطر سطر توی بانک کامپکت درج کنم.
    تا اینجا اوکی هستش و مشکلی نیست .
    اما مشکل من اینجاست که تعداد رکورد های من برای هر جدول میانگیم 200 رکورد هستش و به طور میانگین هر جدول 7 تا ستون داره و حجم داده یه خورده زیاده .

    من با سرعت مشکلی ندارم . فقط و فقط میخوام این کاربری که پشت سیستم نشسته تو این 2 دقیقه یه عکس GIF لودینگ ببینه و اگر هم روی فرم کلیک کرد یا اون رو حرکت داد برنامه به فنا نره

  4. #4
    پروفشنال sari-1369's Avatar
    تاريخ عضويت
    Nov 2007
    محل سكونت
    ساري
    پست ها
    766

    پيش فرض

    یکی مارو راهنمایی کنه

  5. #5
    ناظر انجمن .NET Framework _H2_'s Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    یک جایی بین Framework و نارمک!
    پست ها
    4,746

    پيش فرض

    سلام
    اون تاپیکی که دوستمان جناب MTPROG معرفی کردند، هدفش نمایش ProgressBar است که میزان پیشرفت کار نمایش داده شود.
    در مورد کار شما هم استفاده از آن مورد خوب است ولی راه حل دقیق مشکل شما، استفاده از چند ریسمانی است.

    شما باید متد کپی خود را در یک ریسمان مجزا اجرا کنید تا ریسمان برنامه اصلی بلوکه نشود و به قول خودتان بتوانید تصویر gif متحرکی هم نمایش دهید.

    در خصوص مباحث چند ریسمانی پیشنهاد میکنم تاپیک زیر را مطالعه کنید:
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]

    اگر قصد نمایش میزان پیشرفت و آپدیت فرم را نداشته باشید به Invoke و BeginInvoke و InvokeRequired هم نیاز ندارید.
    فقط کافی است دستورات خود را در ریسمان جدید انجام دهید.

    =====

    تاپیک مرتبط:
    [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
    موفق باشید.

  6. این کاربر از _H2_ بخاطر این مطلب مفید تشکر کرده است


Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •