PDA

View Full Version : اشکال در استفاده از timercallback



c#_web
سه شنبه 18 مهر 1385, 15:02 عصر
با سلام خدمت دوستان عزیز.
من در پروژه ای که انجام میدهم نیاز به یک reminder دارم . که طبق راهنمایی دوستان نیاز شد از timer call back استفاده کنم تا همواره سیستم درگیر نباشد.
طبق راهنمایی که دوستان فرمودند من در برنامه ام یک متغیر از نوع timercallback گرفتم.
و موقع new کردن آن دوستان فرموده بودند باید تابعی که میخواهم در هر پریود اجرا شود را بیان کنم. و سپس یک متغیر از نوع system.threading.timer بگیرم. و موقع new کردن آن باید متغیر timercallback را صدا کنم. ولی من همین کار را کردم طبق مواردی که ضمیمه شده یکی از آنها صفحه کد من است و دیگری خطایی است که میدهد.
لطفاً راهنمایی کنید اگر ایراد از هر جایی هست چگونه برطرف کنم؟؟؟
آیا تابع را باید به گونه ای دیگر تعریف میکردم؟؟ یا اشکال از جای دیگر است؟؟؟
در اینجا من تابعی که نوشته ام فرضاً فقط میخواسته ام که در هر ثانیه ، ثانیه جاری را در تکست باکس بریزد.
خواهشاً مرا راهنمایی کنید چگونه این مشکلم حل شود.

Amir Oveisi
یک شنبه 23 مهر 1385, 12:28 عصر
چون timcallback رو static تعریف کردی

c#_web
دوشنبه 24 مهر 1385, 09:09 صبح
آنرا از حالت static در آوردم باز هم مشکل حل نشد.
نمونه کد استفاده از timer call back را هم که در MSDN وجود داشت نگاه کردم اما درست متوجه آن نشدم.
اگر امکانش هست یک نمونه کد در مورد روش استفاده از آن برایم بگذارید تا با تست آن متوجه روند کار بشوم.
ممنون میشوم مرا راهنمایی کنید.
:متفکر:

Amir Oveisi
شنبه 29 مهر 1385, 22:02 عصر
using System.Threading;
public delegate void MyDelegate();
System.Threading.Timer Timer;
TimerCallback TimerDel;
public void Drow()
{
TimerDel = new TimerCallback(this.TimerSet);
Timer = new System.Threading.Timer(TimerDel, null, 0, 1000);
}
public void TimerSet(object obj)
{

time += 1;
int sec = time % 60;
int min = time / 60;
tsplblTime.Text = " Elapsed time : " + min.ToString() + " min and " + sec.ToString() + " sec";

}

Behrouz_Rad
جمعه 05 آبان 1385, 20:47 عصر
در مورد بحثی که چند وقته راه افتاده و اون استفاده از کلاس Timer برای پروژه های مبتنی بر وب هست، اگر اینقدر خوش شانس باشی که بتونی بر روی هاست از Timer استفاده کنی، این رو بدون که اگر یک JOB به هر دلیلی نتونه در زمانی که گفتی اجرا بشه، CLR در تلاش برای اجرای اون، به دنبال یک Thread خالی می گرده که اون رو رزور کنه!
در نهایت، این کار باعث عدم توازن در Thread ها میشه و برنامت با مشکل مواجه میشه!

موفق باشید.

c#_web
شنبه 20 آبان 1385, 00:10 صبح
پس میگید چه کارکنم؟ من در برنامه ام نیاز دارم که هر دقیقه یکبار ساعت سیستم را با ساعت موجود در دیتابیس مقایسه کند اگر زمانها یکی بود، یعنی در این لحظه شخصی باید کاری انجام دهد، پس باید برای آن پیغامی روی صفحه بیاید.
حالا اگر راه حل یا پیشنهادی برای اینکار دارید به من راهنمایی کنید.