调用非静态方法时出错

时间:2017-06-15 22:38:59

标签: c# timer non-static

我有这个计时器

System.Timers.Timer aTimer = new System.Timers.Timer();
aTimer.Elapsed += new System.Timers.ElapsedEventHandler(OnTimerMethod);
aTimer.Interval = 5000;
aTimer.Enabled = true;

但是当我在计时器代码中调用此方法时,

private void OnTimerMethod(object sender, ElapsedEventArgs e)
{
    Response.Write("text");
}

我收到此错误消息

  

System.Web.dll中发生了'System.Web.HttpException'类型的异常,但未在用户代码中处理

我该如何解决这个问题?

更新:
我看到我做错了但我怎么能做到这一点?

提前致谢

1 个答案:

答案 0 :(得分:2)

  

我试图提醒一下,所以我会在检测到的时间点击一些消息

您不能通过简单地将额外数据写入已完成的响应上下文来实现此目的。 http生命周期不允许此,至少不在http 1. *中。相反,你需要(一个):

  • 将所有计时器代码移至客户端并在javascript中担心
  • 从客户端运行ajax并定期轮询服务器
  • 建立从客户端到服务器的Web套接字连接;这允许服务器在不需要请求的情况下将消息推送到客户端,但需要在客户端和服务器之间建立并建立活动的TCP连接,并且需要为Web套接字服务器使用不同的编程模型

提醒的最佳选择可能只是第一个。