Home > DeveloperSection > Forums > How to use dispatcherTimer.Stop in a different function?
jayprakash sharma
jayprakash sharma

Total Post:117

Points:821
Posted on    January-22-2014 11:34 PM

 C# C# 
Ratings:


 1 Reply(s)
 1144  View(s)
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?



Pravesh Singh

Total Post:411

Points:2881
Posted on    January-23-2014 12:49 AM

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();

    }


Don't want to miss updates? Please click the below button!

Follow MindStick