في البداية نقوم بانشاء دالة تحتوي الكود المطلوب تنفيذه ثم الفترة التي يتم التنفيذ بعدها بشكل دوري
public static void CodeAndTimer()
{
while (true)
{
try
{
// write your job
}
catch { }
finally
{
/// every day
System.Threading.Thread.Sleep(60 * 1000);
}
}
}و بعد ذلك انشاء دالة لتشيغل ال Thread و اخري لوقفه
private static System.Threading.Thread _Thread = null;
public static void StartThread()
{
System.Threading.ThreadStart myThreadStart = new System.Threading.ThreadStart(CodeAndTimer);
_Thread = new System.Threading.Thread(myThreadStart);
_Thread.Start();
}
public static void StopThread()
{
if (null != _Thread)
{
_Thread.Abort();
}
}ثم استدعاء دالة StartThread في ال Application_Start في ملف Global.asax
و ايضا StopThread في ال Application_End
void Application_Start(object sender, EventArgs e)
{
StartThread();
}
void Application_End(object sender, EventArgs e)
{
StopThread();
}يمكنك عمل كلاسات و تنظيم الموضوع اكتر من كده
و ممكن تضيف اكتر من job في نفس ال thread عن طريق تعديل بسيط
مجرد فكرة و ان كانت ليست الافضل و لكنها تؤدي الغرض
بالتوفيق