Timer thread stops running

T

Todd

I have an ASP.NET application and I would like to have some code run
on the server automatically once a day at a specified time.

I create a timer thread to call a simple callback in the
Application_Start method. It seems to call the callback once or twice
while the application starts up but appears to stop once the default
page is displayed. Here is the code below (from Global.asax.cs):

public static void ProcessAccounts (object state) {
StreamWriter writer = new StreamWriter (@"c:\temp\testcallback.txt",
true);
writer.WriteLine (DateTime.Now.ToLongTimeString ());
writer.Close ();
}

protected void Application_Start(Object sender, EventArgs e)
{
TimerCallback callback = new TimerCallback (ProcessAccounts);
Timer timer = new Timer (callback, null, 0, 5000);
}

Any help would be much appreciated.

Cheers,
Todd.
 
A

Alvin Bruney [MVP]

the easiest way to do this is to drop a timer control onto your global.asax
designer. Then customize it like you normally would using the interval
settings. In the event handler you would just put your processaccounts code.
Let .net do the management work for you instead of you doing it.
 
T

Todd Meynink

Alvin, thanks for your help.

The drag and drop of the timer control from the Components gallery
creates a server-based timer. My previous approach was creating a thread
timer.

The server-based timer appears to be basically working but I have two
new problems with this approach.

Firstly, it appears to fire the Elapsed event twice (one second apart)
each time the specified interval elapses (in my test case 15 seconds).

Second, I couldn't see how to easily set an initial elapse time followed
by regular intervals of a standard elapse time (as you can with the
System.Threading.Timer class).

Regards,
Todd
 
G

George Ter-Saakov

As i can see you have following
protected void Application_Start(Object sender, EventArgs e)
{
TimerCallback callback = new TimerCallback (ProcessAccounts);
Timer timer = new Timer (callback, null, 0, 5000);
}

what is the scope of the timer object?

I hope you are getting my drift.

In any normal language timer will disappear as soon as you left the Start.
In .NET it's at random (whenever GS will eat you timer).
the same goes to the callback.

George.
 
T

Todd

George - that was it. Thank-you very much.

Going to go and look for my brain now... :p
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top