PDA

View Full Version : سوال: انجام کارهای زمانبندی شده!



haamidd
چهارشنبه 08 بهمن 1393, 08:33 صبح
سلام و خسته نباشید.
من میخوام در برنامم مثلا وقتی کاربر یک کالا رو ثبت کرد همونجا یک تاریخ هم ازش بگیره که مشخص میکنه تاریخ انقضای این کالا چه زمان و تاریخی هست! و زمانی که به این تاریخ رسیدیم کامپیوتر یک هشدار و یا پیغام به کاربر نمیاش بده!

لطفا منو راهنمایی کنید، من تا حالا وظایف زمانبندی شده انجام ندادم!

ممنون

mam_65
چهارشنبه 08 بهمن 1393, 09:08 صبح
سلام و خسته نباشید.
من میخوام در برنامم مثلا وقتی کاربر یک کالا رو ثبت کرد همونجا یک تاریخ هم ازش بگیره که مشخص میکنه تاریخ انقضای این کالا چه زمان و تاریخی هست! و زمانی که به این تاریخ رسیدیم کامپیوتر یک هشدار و یا پیغام به کاربر نمیاش بده!

لطفا منو راهنمایی کنید، من تا حالا وظایف زمانبندی شده انجام ندادم!

ممنون


try{
System.Timers.Timer tmrTimersTimer = new System.Timers.Timer();
tmrTimersTimer.Interval = 86400 * 1000; // 24 hours
// Anonymous delegate
System.Timers.ElapsedEventHandler handler = new System.Timers.ElapsedEventHandler(delegate(object o, System.Timers.ElapsedEventArgs e)
{

// add your code here



});
tmrTimersTimer.Elapsed += handler;
tmrTimersTimer.Start();
}
catch (Exception ex)
{
StatusBar.WriteError("Processor EXCEPTION" + ex.Message); }

haamidd
چهارشنبه 08 بهمن 1393, 16:58 عصر
برادر میشه یه توضیحی هم بدی؟

ممنون

من مبتدی ام

و اینکه خب اون تاریخ ها کجا ذخیره میشه؟

اصلا طرز کار چجوریه؟

ممنون

lord_helgard
پنج شنبه 09 بهمن 1393, 02:02 صبح
برادر میشه یه توضیحی هم بدی؟

ممنون

من مبتدی ام

و اینکه خب اون تاریخ ها کجا ذخیره میشه؟

اصلا طرز کار چجوریه؟

ممنون

با اجازه دوست عزیز mam_65 (http://barnamenevis.org/member.php?140465-mam_65) که راهنمایی کردن من کد رو توضیح میدم .
ابتدای کد یعنی system.timer یعنی فضای مریوط به تایمر رو ایجاد کُن که میتوان ابتدای خط شروع برنامه هم مانند بقیه فضاهای نوشته شده در زیر یکدیگر نوشت مثل

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Timers;

سپس میاد شیئی از نوع تایمر با نام tmrTimersTimer در پروژه ایجاد میکنه
interval : هم که مربوط به زمان اجرای عملیات تایمر میباشد که بر حسب میلی ثانیه است. مثلاً هر یک دقیقه برابر است با 1000*60 که میشود 60000 که در اینجا منظور از این ضرب 24 ساعت شبانه روز است. که شما میتوانید این زمان رو از ورودی مثلا TextBox یا ComboBox بگیرید. فقط ضریب 1000 را برای بدست آوردن میلی ثانیه در ورود داده ها فراموش نکنید!!

int a = Textbox1.text; int b = comboBox1.SelectedItem;
tmrTimersTimer.Interval = a;
یا
tmrTimersTimer.Interval = b;

EventHandler هم دلیگیت هایی هستند که تعیین میکنند برای هر رویداد چه متد هایی باید اجرا شوند .
مثلا فرض کن برای یک Button یک رویداد Click تعریف شده است . یعنی با کلیک کردن روی باتن عملی انجام شود . برای همین رویداد کلیک یک EventHandler نوشته شده است .
در اینجا ElapsedEventHandler یعنی متُد زمان سپری شده که شیئی برای آن نیز ساخته ایم

و حال try یعنی تلاش
یعنی تلاش کن تا قطعه کدی که داخل try هست رو اجرا کنی
و اگر با خطامواجه شدی catch را اجرا کن
که برای راحتی کار میتونی از messageBox جهت اجرای خطا استفاده کنی
MessageBox.show("Processor EXCEPTION" + ex.Message);
دوست عزیزمون گفتند که دستوراتی که میخواهید در زمان خاصی اجرا کنید هم دقیقاً کجا قرار بدید ( Add Your Code Here )

موفق و پیروز باشید.

dabirsiaghi
پنج شنبه 09 بهمن 1393, 07:04 صبح
استفاده از تایمر مناسب نیست بهتر است از کتابخانه هایی که مربوط به این کار هستند و کار را در پشت سر انجام میدهند استفاده کنید

hamid30sharp
پنج شنبه 09 بهمن 1393, 08:45 صبح
استفاده از تایمر مناسب نیست بهتر است از کتابخانه هایی که مربوط به این کار هستند و کار را در پشت سر انجام میدهند استفاده کنید

لطفا بیشتر راهنمایی می فرمایید.

haamidd
پنج شنبه 09 بهمن 1393, 14:36 عصر
ممنون.
ببینم اینها در صورتی هست که برنامه بسته نشه کار میکنه و یا اگه برنامه بسته باشه هم کار میکنه تو سیستم کاربر؟!
اخه من میخوام زمانی که برنامه بسته هست هم کار کنه (مثل سرویس های فعال ویندوز!)

dabirsiaghi
پنج شنبه 09 بهمن 1393, 22:43 عصر
http://www.quartz-scheduler.net/

haamidd
یک شنبه 12 بهمن 1393, 17:55 عصر
http://www.quartz-scheduler.net/

ممنون، من با این اتفاقا آشنا شده بودم ولی متاسفانه مقاله ی آموزشی فارسی خوبی درموردش نیست! فقط من در یک وب سایت DotNetTips یک اموزش مختصری ازش دیدم!
شما آموزش بهتر و فارسی ایی سراغ ندارید؟
یا باید برم سراغ همون انگیسیش؟

dabirsiaghi
دوشنبه 13 بهمن 1393, 13:06 عصر
خود سایتش و نیز وقتی دانلود میکنین سمپل داره من تو یه پروژه ارسال ایمیل انبوه ازش استفاده کردم اگه سورسش رو پیدا کردم میزارم