Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.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#_Timer - Fatal编程技术网

C# 同一程序中的多个计时器

C# 同一程序中的多个计时器,c#,timer,C#,Timer,我正在尝试制作一个程序,其中有两个计时器,以不同的间隔运行。目前我有一个定时器工作良好,我需要有另一个运行。我的第一个计时器代码如下所示: private void startButton_Click(object sender, RoutedEventArgs e) { Random rand = new Random(); int ranMin = rand.Next(1,24); int ranSec = rand.Next(

我正在尝试制作一个程序,其中有两个计时器,以不同的间隔运行。目前我有一个定时器工作良好,我需要有另一个运行。我的第一个计时器代码如下所示:

    private void startButton_Click(object sender, RoutedEventArgs e)
    {
        Random rand = new Random();
        int ranMin = rand.Next(1,24);
        int ranSec = rand.Next(0, 59);


        System.Windows.Threading.DispatcherTimer dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
        dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
        dispatcherTimer.Interval = new TimeSpan(0, ranMin, ranSec);
        dispatcherTimer.Start();

        min.Content = ranMin;
        sec.Content = ranSec;

        openP();

    }

    private void dispatcherTimer_Tick(object sender, EventArgs e)
    {
        **code for timer in here
    }

这很好,但现在我需要另一个计时器以1秒的间隔运行,使用不同的代码,当我尝试通过将所有Dispatchermer转换为Dispatchermer2来复制此计时器时,我遇到了错误。

我不确定您在做什么,您应该发布错误,但以下代码适用于您提供的代码:

    private void startButton_Click(object sender, RoutedEventArgs e)
        {
            Random rand = new Random();
            int ranMin = rand.Next(1,24);
            int ranSec = rand.Next(0, 59);


            System.Windows.Threading.DispatcherTimer dispatcherTimer = new System.Windows.Threading.DispatcherTimer();
            dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
            dispatcherTimer.Interval = new TimeSpan(0, ranMin, ranSec);
            dispatcherTimer.Start();

            // New timer
            System.Windows.Threading.DispatcherTimer dispatcherTimer2 = new System.Windows.Threading.DispatcherTimer();
            dispatcherTimer2.Tick += new EventHandler(dispatcherTimer2_Tick);
            dispatcherTimer2.Interval = new TimeSpan(0, 0, 1);
            dispatcherTimer2.Start();

            min.Content = ranMin;
            sec.Content = ranSec;

            openP();

        }

        private void dispatcherTimer_Tick(object sender, EventArgs e)
        {
            //code for timer in here
        }

        private void dispatcherTimer2_Tick(object sender, EventArgs e)
        {
           //code for timer2 in here
        }

小贴士帮助你自己,如果你发现你输入的单词出现了错误,并且没有把错误放在问题中,那么你就很难回答你,也就不太可能得到答案。所以,请把你遇到的错误写进你的问题中。请避免在你的文章标题和感谢信中使用标签。另外请注意,visual studio标记用于与VS或其他与VS直接相关的功能集成,而不是用于可以在VS中编写的代码,因为它将应用于此网站上99%的问题。旁注:在示例中使用Random的方式是随机的,不会产生随机结果。请查看关于您的代码问题的最高评分问题:啊,这很有效,我犯了一个愚蠢的错误,行dispatchermer2.Tick+=neweventhandledispatchermer2\u Tick;最后一点是给出了一个错误,说它不存在,但那是因为我没有下面的私有无效线。。。。不管怎样,它现在工作得很好,谢谢你的支持help@user3524727这些事情发生了!