繁体   English   中英

实现轮询服务的最佳方法

[英]Best way to realize a polling service

我在Windows窗体应用程序中有一个窗体,我需要反复轮询数据库。 我在这里问,在轮询服务中制作这种简单表单,避免死锁和类似问题(我不会使用Windows服务)的最佳方法是什么?

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    public PollingService(){
        // do some stuff every x seconds
    }
}

PS:我不是在索要准备好的代码。 我只需要知道如何组织这个。

如果您仍然想轮询,可以尝试一下。 您可以使用计时器。

例:

    private Timer _dbCheckTimer;

    public void InitTimer()
    {
        _dbCheckTimer = new Timer();
        _dbCheckTimer.Elapsed += DBCheckTimer_Elapsed;
        _dbCheckTimer.Interval = 10000; // 10 seconds
        _dbCheckTimer.Start();
    }

    public void DisposeTimer()
    {
        _dbCheckTimer.Dispose();
    }

    void DBCheckTimer_Elapsed(object sender, ElapsedEventArgs e)
    {
        _dbCheckTimer.Stop();
        try
        {
            // check DB
        }
        finally
        {
            _dbCheckTimer.Start();
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM