Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在c中暂停计时器一段时间,然后重新启动它_C#_Timer - Fatal编程技术网

C# 如何在c中暂停计时器一段时间,然后重新启动它

C# 如何在c中暂停计时器一段时间,然后重新启动它,c#,timer,C#,Timer,我正在使用System.Threading.Timer对象。我需要在tick方法中暂停计时器,以便我可以做一些事情,然后重新启动计时器以再次开始tick private async void timer1_Tick(object sender, EventArgs e) { timer1.Stop(); timer1.Enabled = false; if (btn7) { timer.

我正在使用System.Threading.Timer对象。我需要在tick方法中暂停计时器,以便我可以做一些事情,然后重新启动计时器以再次开始tick

    private  async void timer1_Tick(object sender, EventArgs e)
    {
       timer1.Stop();
       timer1.Enabled = false;

         if (btn7)
         {
             timer.Stop();
         }
         fetch_hashtag();
         br2(); //posting in hashtages
         Console.WriteLine("waiting");
         while (timer1.Enabled == false)
         {
             Application.DoEvents();
             if (webBrowser2.Url.AbsoluteUri.Contains("blank"))
                 timer1.Enabled = true;
         }
         await Task.Delay((int)TimeSpan.FromMinutes(double.Parse(textBox4.Text)).TotalMilliseconds);
         timer1.Start();
    }

private async void timer1_Tick(object sender, EventArgs e)
{
    timer1.Enabled = false;
    timer1.Stop();
    timer1.Tick -= timer1_Tick;

    // do some stuff

    timer1.Enabled = true;
    timer1.Start();
    timer1.Tick += timer1_Tick;
}
我需要在tick方法中暂停计时器,以便执行一些操作 填充,然后重新启动计时器以再次开始计时

    private  async void timer1_Tick(object sender, EventArgs e)
    {
       timer1.Stop();
       timer1.Enabled = false;

         if (btn7)
         {
             timer.Stop();
         }
         fetch_hashtag();
         br2(); //posting in hashtages
         Console.WriteLine("waiting");
         while (timer1.Enabled == false)
         {
             Application.DoEvents();
             if (webBrowser2.Url.AbsoluteUri.Contains("blank"))
                 timer1.Enabled = true;
         }
         await Task.Delay((int)TimeSpan.FromMinutes(double.Parse(textBox4.Text)).TotalMilliseconds);
         timer1.Start();
    }

private async void timer1_Tick(object sender, EventArgs e)
{
    timer1.Enabled = false;
    timer1.Stop();
    timer1.Tick -= timer1_Tick;

    // do some stuff

    timer1.Enabled = true;
    timer1.Start();
    timer1.Tick += timer1_Tick;
}
该事件适用于System.Windows.Forms.Timer,而不是System.Threading.Timer。无论如何,只要打电话,做你的事情,然后再打电话:


你的问题是什么?考虑使用一个等待的任务。延迟循环代替。我不确定你在问什么,但我会告诉你这么多。您所做的远远超过了所需,在启用和停止的情况下,这只是多余的。您这样做到底想做什么?只需将构造函数的句点参数传递0,就不必暂停它。打电话给Change让它重新打勾。工作不好,怎么办?更详细地解释它是如何工作的,以及更多关于你正在做的事情…我从twitter获取趋势标签,然后在每个标签中发布一条tweet我需要每分钟都这样做,发生的事情是:首先获取标签并开始发布这个过程需要一分钟以上,所以在我第一次得到的标签发布完成之前。。。计时器在前一个进程完成之前发出新请求并获取另一个hashtags。。。