C# 在ASP.net网站C中自动执行操作#
我有一段代码,我需要在后台自动运行,而不管我正在查看哪个页面。例如,如果我在一个网站的主页或关于页面,我希望一段代码仍然自动运行。确切地说,我想从我所做的email类中每隔30分钟发送一次email通知。我知道,类似的事情可以通过windows服务完成,但我想在网站上的代码C# 在ASP.net网站C中自动执行操作#,c#,asp.net,C#,Asp.net,我有一段代码,我需要在后台自动运行,而不管我正在查看哪个页面。例如,如果我在一个网站的主页或关于页面,我希望一段代码仍然自动运行。确切地说,我想从我所做的email类中每隔30分钟发送一次email通知。我知道,类似的事情可以通过windows服务完成,但我想在网站上的代码 public class Email { string emailFrom = "senderemail@gmail.com"; string password = "yourpassword";
public class Email
{
string emailFrom = "senderemail@gmail.com";
string password = "yourpassword";
string smtpServer = "smtp.gmail.com";
int port = 587;
public void sendEmail(string emailTo, string subject, string body)
{
MailMessage msg = new MailMessage();
msg.From = new MailAddress(emailFrom);
msg.To.Add(emailTo);
msg.Subject = subject;
msg.Body = body;
SmtpClient sc = new SmtpClient(smtpServer);
sc.Port = port;
sc.Credentials = new NetworkCredential(emailFrom, password);
sc.EnableSsl = true;
sc.Send(msg);
}
}
在DOT.NET世界中,异步调用可以通过多种方式完成,如AJAX、AsyncHandler等 在这里,您可以使用“BackgroundWorker”
希望这对您有所帮助…在您的情况下,您可以使用threding尝试以下代码
var timer = new System.Threading.Timer((e) =>
{
sendEmail(string emailTo, string subject, string body);
}, null, 0, TimeSpan.FromMinutes(5).TotalMilliseconds);
希望这对你有帮助。你可以用它来做这份工作。另请阅读Scott Hanselman的文章。它也可以与C#后端一起使用吗@PawełHemperekIt只能与C#后端一起使用。仔细阅读这些链接,你会很高兴去的!我在用ASP.net和C#@PawełHemperekWell,好的。那又怎样?有没有具体的原因让后台工作程序保留在CacheManager中,而不是使其成为静态的?
var timer = new System.Threading.Timer((e) =>
{
sendEmail(string emailTo, string subject, string body);
}, null, 0, TimeSpan.FromMinutes(5).TotalMilliseconds);