PDA

View Full Version : پیشنهاد و راهکار برای آپدیت برنامه



juza66
چهارشنبه 23 مهر 1393, 10:49 صبح
سلام
برای آپدیت کدها رو در یک تایمر قرار میدم، و هر 5 دقیقه یکبار چک میکنم ببینم آپدیت جدیدی برای برنامه اومده یا نه


مشکل:
ممکن همزمان با ثبت یا نمایش اطلاعات اتفاق بیفته که برنامه برای چندثانیه یا چند دقیقه هنگ میکنه



راهکارهای بنده برای جلوگیری از خطا:

راه حل اول:
اومدم زمان بیکاری برنامه رو حساب کردم بعد پیغام آپدیت رو نمایش دادم

راه حل دوم:
هنگام اجرای فرم اول پیغام دادم چند لحظه صبر کنید برنامه درحال بررسی برای بسته بروز رسانی است

راه حل سوم:
دکمه گذاشتم خود کاربر کلیک کنه و از بسته مطلع بشه (خیلی ساده ست و ممکنه کاربر حالا حالا نیاد دکمه بروز رسانی رو بزنه و شاید اطلاع پیدا نکنه)

راه حل چهارم:
یک exe جداگانه برای آپدیت گذاشتم هنگام اجرای برنامه اون exe اجرا بشه و 10 دقیقه یکبار وضعیت بسته بروز رسانی رو چک کنه و اطلاع بده (بنظر بنده هم یک فایل اضافی هستش و هم خیلی از این روش استفاده کردن)



راه حل دوستان برای اطلاع رسانی از آپدیت برنامه چی هستش؟!
ممنون میشم دوستان یه راهنمایی کوچیک انجام بدن


تشکر

NASA's Spaceman
چهارشنبه 23 مهر 1393, 10:58 صبح
من که خودم از عملکرد آنتی ویروس نود سی 32 بیشتر خوشم میاد پس اگه آپدیت انجام بشه و در نهایت یه پیغام به کاربر بده خیلی بهتر هست
ولی میتونی مثل اینترنت دانلود منیجر عمل کنی که تا خودت نخوای اپدیت انجام نمیشه
بستگی به کاربرات هم دارن باید ببینی معمولا کاربرات چی میخوان و یه نظر سنجی یا همچین چیزی تو برنامت بزاری تا نظر اون ها رو متوجه بشی و اینطور میتونی بهترین روش رو انتخاب کنی
با سپاس Spaceman

juza66
چهارشنبه 23 مهر 1393, 11:04 صبح
تشکر از پاسخ تون جناب NASA's Spaceman (http://barnamenevis.org/member.php?317933-NASA-s-Spaceman)


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

کد بروزرسانی و چک کردن رو در اختیار دارم فقط نمایش پیغام من با برنامه تداخل پیدا میکنه و باعث کرش برنامه میشه


دنبال یک راه حل مناسب میگردم


معمولا شما چطوری به کاربر برنامه از بسته جدید خبر میدید؟!

hamid_hr
چهارشنبه 23 مهر 1393, 11:08 صبح
نود 32 میاد دیتابیسشو اپدیت میکنه
شما میخوای برنامه exe رو جایگزین قدیمی بکنی اگه اشتباه نکنم
من خودم زمانی که برنامه رو اجرا میکنه میام چک میکنم اپدیت وجود داره یا نه
اگه وجود داشت به کاربر پیغام میدم و اونم اگه موافق بود فایل جدید جایگزین قدیمی میشه

juza66
چهارشنبه 23 مهر 1393, 11:16 صبح
تشکر از پاسختون جناب hamid_hr (http://barnamenevis.org/member.php?25531-hamid_hr) و همچنین برای پاسخ تایپیک قبلی تون کارم رو انداخت
دمت گرم :))


اره می خوام فقط پیغامی نمایش بدم بدون هنگ برنامه (فقط پیغام نمی خوام آپدیت کنم)
من اینکار رو انجام دادم ولی برنامه ام برای چند ثانیه هنگ میکنه

Mori Bone
چهارشنبه 23 مهر 1393, 11:18 صبح
سلام. بحث آپدیت دیتابیس آنتی ویروس با آپدیت برنامه خیلی فرق داره. آنتی ویروس روزی 2 الی 7 دفعه لازم به آئدیت کردن دیتابیسش داره و حجم هر کدوم از آپدیتاش هم حدود 5 مگ هست. حالا نمی تونه هر روز 6 دفعه واسه یه فایل 5 مگی هی پیغام بده که. این جوری کاربر اعصابش خورد می شه.
به نظر من برای خودت یه طول زمانی رو در نظر بگیر( مثلا هر 3 روز)، تا برنامه اجرا شد.، چک کنه. اگه آپدیت جدیدی بود پیغام بده برای دانلود.
میتونی oop رو روی برنامت پیاده کنی. هم کدن کمتر می شه و هم آپدیت راحت تر میشه.

juza66
چهارشنبه 23 مهر 1393, 11:20 صبح
تشکر آقای Mori Bone (http://barnamenevis.org/member.php?289901-Mori-Bone)


بله میدونم بنده هم فکر این رو داشتم که چندروز یکبار برنامه بررسی کنه ببینه آپدیت اومده براش یا نه

اینم یک راه حل

Mahmoud.Afrad
پنج شنبه 24 مهر 1393, 15:13 عصر
بارها گفته شده که برای جلوگیری از هنگ کردن user interface ، کدی که باعث این هنگ میشه رو در بکگراندورکز و یا ترد مجزا اجرا کنید.

RIG000
پنج شنبه 24 مهر 1393, 15:43 عصر
من یک برای برای لود اطلاعات سنگین از backgrounworker استفاده کردم و فوق االعاد کارم رو راه انداخت. به طوری که سیستم not responding میداد و مجبور بودی کلا" برنامه رو ببندی.
اما با ورکر بعد زدن دکمه برای لود یه وقفه ایجاد میشه و بعد اطلاعات به راحتی لود میشد.