تمام سوالات سوالات بدون پاسخ سوال بپرسید

دوستان من می خوام برنامه ای داشته باشم که ساعت و تاریخ قرار ملاقات های کاربر رو در بانکی ذخیره کند و در تاریخ و ساعت مشخص شده به کاربر آلارم بدهد. مسلماً نمی شه هر چند دقیقه ساعت و تاریخ های ذخیره شده را با زمان فعلی مقایسه کرد. برای این کار چه راه حلی پیشنهاد می دین؟ راستی زبان مورد استفاده من ‍#C است.

2 پاسخ

11

اول اینکه چرا نشه بانک اطلاعاتی رو چک؟ حتی اگه 100هزارتا رکورد هم داشته باشید، اگه کوئری درستی گرفته بشه تقریبا زمان انجام کار صفر خواهد بود. شما میتونید هر یک دقیقه از بانک اطلاعاتی کوئری بگیرید و تنها مواردی رو انتخاب کنید که الان زمان اعلان آنهاست.

به عنوان مثال میتوان دستوری نوشت که تاریخ هر آلارم را با استفاده از تابع GETDATE() چک کند و تنها رکوردهایی را استخراج کند که زمان هشدار آنها رسیده

روش دوم اینه که هنگامی که کاربر یک آلارم رو به نرم افزار شما اضافه کرد، شما اون رو به سیستم زمانبدی ویندوز بدید تا ویندوز مسئولیت انجام زمانبندی رو به عهده بگیره. روش کار با Windows Task رو میتونید تو این مقاله پیدا ببینید:

مقاله آموزشی نحوه ی کار با تسک ها در سایت CodeProject

1

amir@ جان ممنون. پاسخ تون خوبه، اما به نظر من، شاید روش اصولی تر انجام این کار، همون استفاده از ScheduledTask ها باشه. اما کاش یه توضیح خلاصه ای از اون مقاله رو این جا می ذاشتین تا یه کسی مثل من که زیاد انگلیسی حالیش نمی شه هم بتونه از مطلب استفاده کنه. ولی در کل خیلی ازت ممنونم که روش جالبی رو به من یاد دادی.

(08 آوریل '12, 01:04) SeriousAnt

مثلا میشه یک نخ (thread) اصلی داشته باشی که با یک دوره زمان ثابت مثلا هر 15 دقیقه تمام لیست رو چک کنه و اگه در کمتر از 15 دقیقه یادآوری داشته باشی برای اون یک نخ تعریف کنه که سر ساعت مقرر اجرا بشه همین جوری به ذهنم رسید می تونیم با گفتگو به راههای بهتری برسیم.

1

mohammadi۴net@ جان درست می فرمایید. ولی این روش درست انجام کار نیست و همانطور که raccoon@ هم گفته این کار منابع زیادی رو در سیستم به هدر می ده! راه های بهتری هم مثل راهی که amir@ برای بکار گیری ScheduledTask های ویندوز بکارگرفته، وجود داره که از منابع بسیار کمتری استفاده می کنند.

(07 آوریل '12, 18:12) bee

من تو یه نرم افزار که تحت شبکه کار می کنه یه یادآور براساس تاریخ دارم کاربران نرم افزار ازم خواسته بودن که قابلیت یادآوری ساعتی و دقیقه ای بهش اضافه کنم.اگه بخواهم هر دقیقه به ازای هر کاربر یه کوئری رو سرور اجرا کنم زیاد جالب نمیشه به همین دلیل این روش پیشنهاد دادم. که برگرفته از مفروضات ذهنی خودم بود. الف : نرم افزار دسکتاپ تک کاربره ب : قسمتی از یک نرم افزار کاربردی تحت شبکه

به احتمال زیاد دوستمون حالت الف مد نظرشون هست که جناب amir@ پاسخ منطقی دادند.

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

(07 آوریل '12, 22:55) mohammadi4net

دوست من mohammadi۴net@ فرمایشتون به نظر من درسته. در مورد قسمت (ب) که شما فرمودین، به نظر من هر دو راه حل کاربردی است. (البته مسلم است که باید این اتفاق روی سرور بیفتد) یعنی هم می شود روی سرور برنامه ای داشت به ازای یک بازه زمانی نسبتاً بلند مثل همان 15 دقیقه زمان ها را بررسی نماید و هم می شود از راه حل amir@ استفاده کرد (یعنی همان تنظیم ScheduledTask ها روی سرور). هر دو راه حل کاربردی و قابل تأمل است.

(08 آوریل '12, 00:37) mostafa
toggle preview



آموزش زبان برنامه نویسی C#
آموزش jquery
آموزش برنامه نویسی
آموزش طراحی وبسایت
آموزش مدیریت وبسایت
آموزش جاوا Java
آموزش پایتون Python
آموزش سی شارپ C#‎
آموزش HTML و CSS
آموزش JavaScript جاوااسکریپت
آموزش jQuery جی کوئری
آموزش ساخت ربات تلگرام
آموزش برنامه‌نویسی PHP
آموزش برنامه‌نویسی اندروید
● آموزش‌های رایگان

سوالات مرتبط

راهنمای استفاده از ویرایشگر
  • *ایتالیک*‌ یا __ایتالیک__
  • **ضخیم** یا __ضخیم__
  • آدرس:[متن](http://url.com/ "عنوان")
  • عکس?![alt متن](/path/img.jpg "عنوان")
  • لیست عددی: 1. Foo 2. Bar
  • برای رفتن به خط بعد، هر جا مایلید که خط جدید شروع شود دو کاراکتر فاصله (space) قرار دهید
  • تگ‌های ساده HTML هم پشتیبانی می‌شوند

تگها:
  • ×47
  • ×1
  • پرسیده شده: 07 آوریل '12, 07:51
  • بازدید: 3,442 بار
  • آخرین بروزرسانی: 08 آوریل '12, 01:05

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

هنگامی که شما به سیستم وارد شوید،قادر خواهید بود برای بروز رسانی ها مشترک شوید.


توسط RSS:

پاسخها

پاسخها و نظرها