建立投票机制

时间:2010-07-12 22:21:21

标签: c#

在C#中,创建轮询机制的最佳方法是什么?所以我有一些代码可以定期做一些动作。

这适用于Web服务,因此任何与UI相关的解决方案都不适用。

由于

5 个答案:

答案 0 :(得分:3)

“可以定期执行某些操作的代码”称为“计时器”。搜索MSDN,您会找到三到四个类,其中一些是非gui(System.Threading.Timer会想到)。

编辑:需要向谁显示更改?如果它们仅对Web服务的其他使用者可见,则一种方法是每个传入请求可以检查定期操作是否过期并执行它。但是,如果(1)需要对例如以下内容进行更改,则不应以此方式执行此操作。同一数据库的其他客户端,或(2)定期更改需要比任意传入请求更大的权限。此外,如果客户端取消其请求,则可能会中断定期操作,并且执行操作可能会显着延迟对客户端的响应。由于这些原因,我不建议在正常的请求/响应处理中添加定期处理。

答案 1 :(得分:2)

如果你说你有一个应该定期对它自己采取行动的网络服务,那么我认为你还没有完全得到网络服务模式。 Web服务应该坐在那里(就像网页一样),直到有什么东西开始。

否则你正处理一个非常脆弱的情况,任何事情都可能导致它停止。

如果您有一些需要在计时器上运行的代码,那么您应该调查将该代码放在Windows服务中(不要与Web服务混淆)。这就是它们的用途。

答案 2 :(得分:0)

看一下System.Threading.Timer课程。这会定期调用您提供的方法。这些调用是在一个单独的线程(线程池中的一个线程)上进行的。

答案 3 :(得分:0)

你想要使用计时器。

.NET框架中有一些计时器,包括:

  • System.Timers.Timer
  • System.Threading.Timer
  • System.Windows.Forms.Timer

请参阅此文章以获取有关选择正确选项的帮助:Comparing the Timer Classes in the .NET Framework Class Library

答案 4 :(得分:0)

听起来你想要一个Timer,但这在Web服务中使用没有意义。如果计时器在客户端中会更有意义。客户使用您的Web服务的是什么?