Make an example dispatcher to work

I am trying to make a working program from this example: http://msdn.microsoft.com/en-us/library/ms741870.aspx . I think I'm almost done, but I can’t say Dispatcher: what should I use .Dispatcher.BeginInvoke instead tomorrow? I think I should put a UI thread, but how can I do this?

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Threading; namespace TestDelegate { public partial class Form1 : Form { private delegate void NoArgDelegate(); private delegate void OneArgDelegate(String arg); public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { // Change the status image and start the rotation animation. button1.Enabled = false; button1.Text = "Contacting Server"; // Start fetching the weather forecast asynchronously. NoArgDelegate fetcher = new NoArgDelegate( this.FetchWeatherFromServer); fetcher.BeginInvoke(null, null); } private void FetchWeatherFromServer() { Thread.Sleep(4000); // Schedule the update function in the UI thread. tomorrow.Dispatcher.BeginInvoke( System.Threading.ThreadPriority.Normal, new OneArgDelegate(UpdateUserInterface), weather); } private void UpdateUserInterface(String weather) { //Update UI text button1.Enabled = true; button1.Text = "Fetch Forecast"; } } } 
0
source share
3 answers

The problem is with links, Dispatcher , as presented in the .NET framework 3 and above, is located in the System.Windows.Threading , and not in System.Threading .

The System.Windows available in WPF (Windows Presentation Foundation) projects.

+1
source

On Windows Forms, you can simply use this.BeginInvoke(...) .

This is a method of the Control class, and Form is the result of Control .

+2
source

What about this.Dispatcher.Invoke(...) ?

0
source

All Articles