Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   ASP .Net (http://www.velocityreviews.com/forums/f29-asp-net.html)
-   -   Timer thread stops running (http://www.velocityreviews.com/forums/t75309-timer-thread-stops-running.html)

Todd 04-06-2004 02:42 AM

Timer thread stops running
 
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.

Alvin Bruney [MVP] 04-06-2004 03:43 AM

Re: Timer thread stops running
 
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.

--
Regards,
Alvin Bruney [ASP.NET MVP]
Got tidbits? Get it here...
http://tinyurl.com/27cok
"Todd" <todd@redbackdvd.com.au> wrote in message
news:f9b47150.0404051842.1e0c4748@posting.google.c om...
> 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.




Todd Meynink 04-06-2004 05:27 AM

Re: Timer thread stops running
 

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


*** Sent via Developersdex http://www.developersdex.com ***
Don't just participate in USENET...get rewarded for it!

George Ter-Saakov 04-06-2004 01:26 PM

Re: Timer thread stops running
 
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.


"Todd" <todd@redbackdvd.com.au> wrote in message
news:f9b47150.0404051842.1e0c4748@posting.google.c om...
> 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.




Todd 04-08-2004 03:21 AM

Re: Timer thread stops running
 
George - that was it. Thank-you very much.

Going to go and look for my brain now... :-P

"George Ter-Saakov" <nospam@hotmail.com> wrote in message news:<esHEeq9GEHA.3096@TK2MSFTNGP11.phx.gbl>...
> 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.
>
>
> "Todd" <todd@redbackdvd.com.au> wrote in message
> news:f9b47150.0404051842.1e0c4748@posting.google.c om...
> > 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.



All times are GMT. The time now is 09:19 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.