By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,278 Members | 2,172 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,278 IT Pros & Developers. It's quick & easy.

Timer.Elapsed event doesn't want to fire

P: n/a
I am trying to learn how to use the System.Timers.Timer control to perform
an action every certain amount of time. However, the Elapsed event doesn't
want to fire, but I can't figure out why. I looked at several code examples
online, but I think I was doing everything the same way they were. Does
anybody have a complete example in VB.NET (the whole aspx and aspx.vb file
so I know I am including everything) that I can look at? Any help would be
appreciated. Thanks.
--
Nathan Sokalski
nj********@hotmail.com
http://www.nathansokalski.com/
Nov 19 '05 #1
Share this Question
Share on Google+
5 Replies


P: n/a
Are you trying to use this in a ASP.NET Page? Pages live only for the time of
the request. Once a request is served, the Page class is destroyed.

--
Rgds,
Anand
VB.NET MVP
http://www.dotnetindia.com
"Nathan Sokalski" wrote:
I am trying to learn how to use the System.Timers.Timer control to perform
an action every certain amount of time. However, the Elapsed event doesn't
want to fire, but I can't figure out why. I looked at several code examples
online, but I think I was doing everything the same way they were. Does
anybody have a complete example in VB.NET (the whole aspx and aspx.vb file
so I know I am including everything) that I can look at? Any help would be
appreciated. Thanks.
--
Nathan Sokalski
nj********@hotmail.com
http://www.nathansokalski.com/

Nov 19 '05 #2

P: n/a
for asp.net, anand is correct.

for all languages in general, timers are not guaranteed to fire on
time. this happens for two reason: 1) task switching at the CPU; and
2) WM_TIMER messages have a lower priority than other messages (like
device input)

Nov 19 '05 #3

P: n/a
hi, there are two types of timers, one is at windows forms, and the other is
at components, one works just fine, and the other its just crap... i didnt
know the difference, but so is it...
salute!

"Nathan Sokalski" wrote:
I am trying to learn how to use the System.Timers.Timer control to perform
an action every certain amount of time. However, the Elapsed event doesn't
want to fire, but I can't figure out why. I looked at several code examples
online, but I think I was doing everything the same way they were. Does
anybody have a complete example in VB.NET (the whole aspx and aspx.vb file
so I know I am including everything) that I can look at? Any help would be
appreciated. Thanks.
--
Nathan Sokalski
nj********@hotmail.com
http://www.nathansokalski.com/

Nov 19 '05 #4

P: n/a
I understand that that is true for the actual pages, but is there a way to
use a timer in the Global.asax.vb file? Doesn't that live the entire life of
the application? My basic goal is to find a way to periodically send myself
stats about what people do at my site, and send email newsletters. And there
is obviously some purpose for the System.Timers.Timer in ASP.NET since
Visual Studio lets you add it to an ASP.NET webform.
--
Nathan Sokalski
nj********@hotmail.com
http://www.nathansokalski.com/
"Anand[MVP]" <An******@discussions.microsoft.com> wrote in message
news:ED**********************************@microsof t.com...
Are you trying to use this in a ASP.NET Page? Pages live only for the time
of
the request. Once a request is served, the Page class is destroyed.

--
Rgds,
Anand
VB.NET MVP
http://www.dotnetindia.com
"Nathan Sokalski" wrote:
I am trying to learn how to use the System.Timers.Timer control to
perform
an action every certain amount of time. However, the Elapsed event
doesn't
want to fire, but I can't figure out why. I looked at several code
examples
online, but I think I was doing everything the same way they were. Does
anybody have a complete example in VB.NET (the whole aspx and aspx.vb
file
so I know I am including everything) that I can look at? Any help would
be
appreciated. Thanks.
--
Nathan Sokalski
nj********@hotmail.com
http://www.nathansokalski.com/

Nov 19 '05 #5

P: n/a
Here is an example. for the full context, see:
http://www.eggheadcafe.com/articles/20040607.asp
Hope this helps.
--Peter

using System;
using System.Web;
using System.Threading;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

namespace BlackbeltBLL {
public class BackgroundService : IHttpModule {
static Timer timer;
int interval = 5000;
public String ModuleName {
get { return "BackgroundService"; }
}

public void Init(HttpApplication application) {
// Wire-up application events
if (timer == null)
timer = new Timer(new
TimerCallback(ScheduledWorkCallback),
application.Context, interval, interval);
}

public void Dispose() {
timer = null;
}

private void ScheduledWorkCallback (object sender) {
HttpContext context = (HttpContext) sender;
Poll(context);
}

void DoSomething (HttpContext context) {
}

#region DB Poll
void Poll (HttpContext context) {
SqlConnection connection = new
SqlConnection(ConfigurationSettings.AppSettings["Northwind"]);
SqlCommand command = new
SqlCommand("SELECT * FROM changenotification", connection);
SqlDataReader reader;
string key =
ConfigurationSettings.AppSettings["SqlDependency"];
connection.Open();
reader = command.ExecuteReader();
while (reader.Read()) {
string tableKey = String.Format(key, reader["Table"]);
if (context.Cache[tableKey] != null) {
int changeKey =
int.Parse( context.Cache[ String.Format(key,
reader["Table"])].ToString() );
if (changeKey != int.Parse(
reader["ChangeID"].ToString() ))
context.Cache.Remove(tableKey);
}
}
connection.Close();
}
#endregion
}
}
Nathan Sokalski wrote:
I understand that that is true for the actual pages, but is there a way to
use a timer in the Global.asax.vb file? Doesn't that live the entire life of
the application? My basic goal is to find a way to periodically send myself
stats about what people do at my site, and send email newsletters. And there
is obviously some purpose for the System.Timers.Timer in ASP.NET since
Visual Studio lets you add it to an ASP.NET webform.
--
Nathan Sokalski
nj********@hotmail.com
http://www.nathansokalski.com/
"Anand[MVP]" <An******@discussions.microsoft.com> wrote in message
news:ED**********************************@microsof t.com...
Are you trying to use this in a ASP.NET Page? Pages live only for the time
of
the request. Once a request is served, the Page class is destroyed.

--
Rgds,
Anand
VB.NET MVP
http://www.dotnetindia.com
"Nathan Sokalski" wrote:
I am trying to learn how to use the System.Timers.Timer control to
perform
an action every certain amount of time. However, the Elapsed event
doesn't
want to fire, but I can't figure out why. I looked at several code
examples
online, but I think I was doing everything the same way they were. Does
anybody have a complete example in VB.NET (the whole aspx and aspx.vb
file
so I know I am including everything) that I can look at? Any help would
be
appreciated. Thanks.
--
Nathan Sokalski
nj********@hotmail.com
http://www.nathansokalski.com/


Nov 19 '05 #6

This discussion thread is closed

Replies have been disabled for this discussion.