PDA

View Full Version : ذخیره اطلاعات برنامه قبل از خاموشی سیستم



ghamgin
یک شنبه 25 فروردین 1392, 10:03 صبح
سلام
چکار کنم که وقتی کاربر سیستم رو خاموش کرد اطلاعات برنامه ام اگر در حال اجرا باشه در بانک اطلاعاتی ذخیره بشه؟؟؟؟؟
ممنون

massar
یک شنبه 25 فروردین 1392, 10:26 صبح
سلام دوست عزیز
امکان اینکه قبل از خاموش شدن سیستم این کار رو انجام بدین وجود نداره، امکانش هست البته که قبل از بسته شدن برنامه ذخیره رو انجام بدین ولی قابل اطمینان نیست چون اگر گروسس kill بشه سیستم عامل به برنامه فرصت انجام هیچ کاریو نمیده. بهترین کار اینه که اطلاعاتو در اصرع وقت ذخیره کنید و نزارین برای وقتی که سیستم میخواد خاموش بشه، هر موقع چیزی تغییر کرد همون موقع دخیره کنید.
اگر ساختار و شرایط برنامه رو بدونم شاید بتونم کمک کنم در مورد اینکه چطور میشه تغییرات رو همون موقع شناسایی و ذخیره کرد.

amir_pro
یک شنبه 25 فروردین 1392, 10:30 صبح
تو رویداد formclosing کدبنویس اگه state بسته شدن فرم user یا سیستم عامل بود اطلاعات رو ذخیره بکنه

Mahmoud.Afrad
یک شنبه 25 فروردین 1392, 19:45 عصر
از رویدادهای سیستمی از کلاس Microsoft.Win32.SystemEvents استفاده کنید. (رویدادهای sessionending,sessionended ...)

FastCode
یک شنبه 25 فروردین 1392, 20:01 عصر
از رویدادهای سیستمی از کلاس Microsoft.Win32.SystemEvents استفاده کنید. (رویدادهای sessionending,sessionended ...)
در این مورد به محض دریافت event بهترین کاری هم که میتونید انجام بدید ایجاد یک Thread دیگه برای کارتون هست.چون بیشتر سیستم عامل ها وقتی Thread جدیدی ایجاد میکنید چند تا timeslice رو پشت سر هم بهش اختصاص میدن که به تضمین ذخیره شدن اطلاعاتتون خیلی کمک میکنه.یادتون نره که Priority ترد رو روی High تنظیم کنید.(ممکنه توی بعضی سیستم ها سطح دسترسی نداشته باشید(لینوکس))

Reference:Linux Kernel Development, Robert Love

ghamgin
دوشنبه 26 فروردین 1392, 10:05 صبح
در این مورد به محض دریافت event بهترین کاری هم که میتونید انجام بدید ایجاد یک Thread دیگه برای کارتون هست.چون بیشتر سیستم عامل ها وقتی Thread جدیدی ایجاد میکنید چند تا timeslice رو پشت سر هم بهش اختصاص میدن که به تضمین ذخیره شدن اطلاعاتتون خیلی کمک میکنه.یادتون نره که Priority ترد رو روی High تنظیم کنید.(ممکنه توی بعضی سیستم ها سطح دسترسی نداشته باشید(لینوکس))

Reference:Linux Kernel Development, Robert Love

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

FastCode
دوشنبه 26 فروردین 1392, 11:01 صبح
سلام
میشه بیشتر راهنمایی کنید یا نمونه ای بذارید؟
برنامه رو توی استارت اپ گذاشتم میخوام مقدار یک فیلد قبل از خاموشی در بانک بره
ممنون
msdn.microsoft.com/en-us/library/microsoft.win32.systemevents.sessionending.aspx
این رو خوندی؟

ghamgin
دوشنبه 26 فروردین 1392, 16:43 عصر
ازش سر در نمیارم...!