C# 如何在设定的时间间隔后停止计时器对象?

C# 如何在设定的时间间隔后停止计时器对象?,c#,datetime,windows-phone-8,timer,stopwatch,C#,Datetime,Windows Phone 8,Timer,Stopwatch,我已经从文本框中为日期时间变量指定了一个字符串值。它的目的是作为一个标志,告诉myTimer对象在达到workDt中存储的时间(日期时间变量)时停止 我尝试的当前实现如下所示,其中我设置了if..else语句来检查计时器的当前时间是否等于在文本框中输入的时间,但它不会触发计时器停止 我在“if”语句上设置了一个断点,时间值存储在workt中,但不会触发计时器停止 有没有人能看到我的实现中的缺陷,或者就替代解决方案提供任何建议 private void startBtn_Tap(object se

我已经从文本框中为日期时间变量指定了一个字符串值。它的目的是作为一个标志,告诉myTimer对象在达到workDt中存储的时间(日期时间变量)时停止

我尝试的当前实现如下所示,其中我设置了if..else语句来检查计时器的当前时间是否等于在文本框中输入的时间,但它不会触发计时器停止

我在“if”语句上设置了一个断点,时间值存储在workt中,但不会触发计时器停止

有没有人能看到我的实现中的缺陷,或者就替代解决方案提供任何建议

private void startBtn_Tap(object sender, System.Windows.Input.GestureEventArgs e)
        {


            string wrkString;
            string rstString; 


            //Assign text box time string to string variables.
            wrkString = wrkTbx.Text;
            rstString = restTbx.Text;


            //Assign text box string value to a date time variable.

            DateTime workDt = DateTime.ParseExact(wrkString.Replace(": ", ":").Replace(" :", ":"), "HH:mm:ss:fff", CultureInfo.InvariantCulture);
            DateTime restDt = DateTime.ParseExact(rstString.Replace(": ", ":").Replace(" :", ":"), "HH:mm:ss:fff", CultureInfo.InvariantCulture);


            StopGoCvs.Background = new SolidColorBrush(Colors.Green);
            hornElmt.Play();
            //    // set up the timer
            myTimer = new DispatcherTimer();
            myTimer.Interval = new TimeSpan(0, 0, 0, 0, 1);
            myTimer.Tick += myTimer_Tick;

            //tell timer to stop when it has reached the allocated work time.
            if(myTimer.Interval != workDt.TimeOfDay)
            {
                // start both timers
                myTimer.Start();
                myStopwatch.Start();

            }
            else
            {
                myTimer.Stop();
                myStopwatch.Stop();

            }



        }

将timer对象设为全局对象,以便类中的所有方法或事件都可以访问,然后启动timer给每次到达的时间赋予一个事件,然后在该事件上有条件地检查时间是否达到预期时间,然后停止计时器。

将间隔设置为:
myTimer.Interval=new TimeSpan(0,0,0,1)
意味着你设置了一个1ms的间隔,这样就不可能进入
对于以下情况:

myTimer.Interval == workDt.TimeOfDay
有没有见过


您所寻找的更多的是一个计时器,而不是一个计时器。

似乎我应该使用检查myStopwatch elaspsed time中存储的值,而不是所解释的计时器对象。你对如何检查这个有什么建议吗?我尝试了
如果(myStopwatch.appeased=workDt.TimeOfDay)
但这不是有效的作业。