我在MVC 4.5项目中创建了一个服务类。在这个课程中,我需要开始一个Poll方法。
这样做的最佳做法是什么?
这是一个模拟,但需要启动,不建议使用Thread.Sleep。并且该方法应该是全局的,并且每分钟只能调用一次。
private void Poll()
{
Foo("Do somethings");
Thread.Sleep(60000);
Poll();
}
有什么好的建议吗?
答案 0 :(得分:2)
使用您的方法最终会产生StackOverflowException
。
您应该利用内置的Timer
类。
你可以Update part of a model on change event。
您的使用代码类似于
Timer t = new Timer(o => Foo("Do somethings"), null, 0, 60000);
旁注:
正如@RonBeyer指出的那样,在ASP.net中进行民意调查可能不是您完成工作的最佳工具。
WCF长期运行的服务,例如对您的ASP.Net应用程序的Web挂钩似乎是合适的。同样,这取决于您需要实现的目标。不要犹豫,详细了解您的最终目标是什么。