View Full Version : حرفه ای: چگونگی جلوگیری از هنگ برنامه
mostafa_bahar
پنج شنبه 06 بهمن 1390, 23:13 عصر
دوستان عزیز من دو بانک رو در یک adodc join کردم همه کارها درسته فقط مشکلم اینه که وقتی adodc را باز می کنم زمان زیادی طول می کشه که برنامه هنگ می کنه برا 7 ثانیه می خوام کاری باشه که باز کردن انجام بشه ولی هنگ نکنه برنامه مثل استفاده از doevents در حلقه ها ولی من کلی گشت زدم چیزی پیدا نکردم لطفا کمک کنید ممنون
راستی من نمی تونم اطلاعات رو تکه تکه بردارم همشو یک دفعه می خوام
Netcat
پنج شنبه 06 بهمن 1390, 23:40 عصر
به نظر من شما از Adodc استفاده نکنید چون خیلی مشکل ایجاد می کنه .
شما می تونین پایگاهتون رو به صورت کد نویسی وصل کنید و بعد از اینکه کارتون تموم شد پایگاهتون رو بندید ، که به نظر من از Adodc خیلی بهتره .
برای این کار شما باید اول یه Recordset تعریف کنید و بعد اون رو باز کنید و در آخر هم اون رو ببندید.
mostafa_bahar
جمعه 07 بهمن 1390, 10:50 صبح
من کار شما رو هم که گفتید کردم باز هم نشد من دونبال back ground worker می گردم کسی در این رابطه می تونه کمک کنه
M.T.P
جمعه 07 بهمن 1390, 12:37 عصر
ببینید اینکه کل اطلاعات رو می خواید تو Form_Load بار گذاری کنید کار منطقی نیست.
شما می تونید به فرم اجازه بدید که کاملا پیداش بشه بعد یک تایمر با اینتروال 2 ثانیه عملیات Loading رو به عهده بگیره و پس از پایان بارگذاری از کار بیفته.
برای این کار یعنی Set کردن گرید به رکوردست و نمایش یک کادر پیمایش یا همون Progressbar به منظور مدت زمان انتظار آن نمیشه هیچ کاری کرد چون vb6 در زمینه Multi Threading ضعیف هست و شما تنها می تونید یک کادر استاتیک با عنوان "لطفا منتظر بمانید" رو به کاربر نشون بدید صرفا به خاطر اینکه کاربر بدونه برنامه هنگ نکرده و در حال بارگذاری اطلاعات هست.
در ضمن وقتی فرم "لطفا منتظر بمانید" رو می خواید به نمایش بگذارید باید اولا Modal نباشه و همچنین یک بار اونو Refresh کنید.
FrmProgress.Show vbModeless
FrmProgress.Refresh
'Load Data...
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.