How to use dispatcherTimer.Stop in a different function?

Total Post:117

Points:821
C# 
C#
 1833  View(s)
Ratings:
Rate this:

I have a question regarding the use of dispatcherTimer in code. Please look at my situation below:                                                                                                                                                                           

private void CheckShow(object sender,System.Windows.RoutedEventArgs e)
{
    DispatcherTimer dispatcherTimer = new DispatcherTimer();
    dispatcherTimer.Interval = new TimeSpan(0, 0, 0, 0, 1);
    dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);            
    dispatcherTimer.Start();
    string etime =DateTime.Now.Second.ToString();     
}
private void dispatcherTimer_Tick(object sender, EventArgs e)
{
    if(System.IO.File.Exists(@"C:\Default.xml"))
    {
        LoadingRecent.Text = "Loading Default Show...";
        LoadBar.Opacity = 100;        string time1 =DateTime.Now.Millisecond.ToString();
        string time2 =DateTime.Now.Second.ToString();
        double huidigetijd = System.Convert.ToDouble(time2 + "." + time1);
        LoadBar.Value= huidigetijd;
        Remainingnummer.Text = Convert.ToString(10 - DateTime.Now.Second);
        string etime =DateTime.Now.Second.ToString();
        if (etime =="10")
        {
            var provider = (XmlDataProvider)this.Resources["CUEData"];
            var loadfilepath = @"C:\Default.xml";
            provider.Source = new Uri(loadfilepath, UriKind.Absolute);
            Storyboard Hoofdvenster = (Storyboard)Resources["Hoofdvenster"];
            Hoofdvenster.Begin(this, true);
        }

As you can see in the top function I start the timer and then in the Tick I do some stuff when the timer reaches ten seconds. However I want to stop the dispatchertimer in that if statement but then I get a context error.

So how do I stop the timer in a different function?

  1. Post:412

    Points:2888
    Re: How to use dispatcherTimer.Stop in a different function?

    Hi Jay,


    this works :)

        public MainWindow()
        {
            InitializeComponent();
            DispatcherTimer dispatcherTimer = new DispatcherTimer();
            dispatcherTimer.Tick += new EventHandler(dispatcherTimer_Tick);
            dispatcherTimer.Interval = new TimeSpan(0, 0, 1);
            dispatcherTimer.Start();
        }
        private void dispatcherTimer_Tick(object sender, EventArgs e)
        {
                 //Do Something
        }
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            Dispatcher.InvokeShutdown();
        }

      Modified On Apr-04-2018 01:34:18 AM

Answer

NEWSLETTER

Enter your email address here always to be updated. We promise not to spam!