使用计时器在visual c#中每秒调用一个方法

时间:2016-04-22 04:48:55

标签: c# timer

我正在尝试初始化一个每秒调用一次方法的计时器。我需要从另一个事件处理程序中初始化它。

我写了这段代码,但它仍然给我一个编译错误。它们,初始化和事件处理程序都在同一个类中。

private void Controllel_Opened(object sender, EventArgs e)
    {   
        System.Timers.Timer myTimer = new System.Timers.Timer();
        myTimer.Elapsed += new System.Timers.ElapsedEventHandler(DisplayTimeEvent);
        myTimer.Interval = 1000; // 1000 ms is one second
        myTimer.Start();

    }


    public static void DisplayTimeEvent(object source, ElapsedEventArgs e)
    {
        // code here will run every second
    }

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

嗯,谢谢,它让我看起来,我发现我只是在事件处理程序中的ElapsedEventArgs之前错过了引用。

因此代码完全适用于:

public static System.Timers.Timer myTimer = new System.Timers.Timer();    

private void Controllel_Opened(object sender, EventArgs e)
{   
    myTimer.Elapsed += new System.Timers.ElapsedEventHandler(DisplayTimeEvent);
    myTimer.Interval = 1000; // 1000 ms is one second
    myTimer.Start();
}

public static void DisplayTimeEvent(object source, System.Timers.ElapsedEventArgs e)
{
    // code here will run every second
}

感谢您的光临。

答案 1 :(得分:-1)

您也可以从客户端做同样的事情。

[WebMethod]
public static void  MyServerMethod()
{
   //Code goes herer.
}

setInterval(function () {
              $.post("../MyPage.aspx", function (data) {

            $.ajax({
            type: 'POST',
            contentType: "application/json; charset=utf-8",
            url: '../MyPage.aspx/MyServerMethod',
            data: '{}',
            async: false,
            success: function (response) {
            
              // code goes here. 
           
                });
            }, 1000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>