In asp.net there are needs for performing few activities periodically. For that we can use some class libraries or third party component to schedule a task or function to execute periodically.
Recently i found following simplest way to execute periodically any code.
Suppose you have a class and routine as follow in App_Code/CS,
public class ClassABC
{
public static void SomeFunctionToRunPeriodically()
{
try
{
System.IO.File.WriteAllText(System.Web.Hosting.HostingEnvironment.MapPath(“~/LatestRunSaved.txt”), “Last Run of function at : ” + DateTime.Now.ToString() + Environment.NewLine);
}
catch (Exception ex)
{
string t = ex.Message;
}
System.Threading.Thread.Sleep(20000);
SomeFunctionToRunPeriodically(); //calling self after interval
}
public ClassABC()
{
//
// TODO: Add constructor logic here
//
}
}
If you notice in above function then its calling to itself after interval.
Now in global application file ‘global.asax’ inside application start event use following lines to create a new thread based call to a function above.
void Application_Start(object sender, EventArgs e)
{
System.Threading.Thread obj = new System.Threading.Thread(new System.Threading.ThreadStart(ClassABC.SomeFunctionToRunPeriodically));
obj.Name = “AnyTestName”;
obj.IsBackground = true;
obj.Start();
}
Recently i found following simplest way to execute periodically any code.
Suppose you have a class and routine as follow in App_Code/CS,
public class ClassABC
{
public static void SomeFunctionToRunPeriodically()
{
try
{
System.IO.File.WriteAllText(System.Web.Hosting.HostingEnvironment.MapPath(“~/LatestRunSaved.txt”), “Last Run of function at : ” + DateTime.Now.ToString() + Environment.NewLine);
}
catch (Exception ex)
{
string t = ex.Message;
}
System.Threading.Thread.Sleep(20000);
SomeFunctionToRunPeriodically(); //calling self after interval
}
public ClassABC()
{
//
// TODO: Add constructor logic here
//
}
}
If you notice in above function then its calling to itself after interval.
Now in global application file ‘global.asax’ inside application start event use following lines to create a new thread based call to a function above.
void Application_Start(object sender, EventArgs e)
{
System.Threading.Thread obj = new System.Threading.Thread(new System.Threading.ThreadStart(ClassABC.SomeFunctionToRunPeriodically));
obj.Name = “AnyTestName”;
obj.IsBackground = true;
obj.Start();
}
New thread based function call will run until your application is running in IIS process, It is a background process.
Other routine things on site will work normally without problem.
===================================================
Thank you
No comments:
Post a Comment