1.dispatcher.begininvoke
int II = 0; New Thread (New Parameterizedthreadstart ((i) + = { while (true) { thread.sleep (); Dispatcher.begininvoke (new Action () = { II + = 1; Btn2. Content = II. ToString (),})) . Start ();
2. Update the progress bar in the dynamic callback (1 the way to update the interface has not been directly effective, need to call the Doevent () method to update the interface information in a timely manner)
Private async void Button_Click (object sender, RoutedEventArgs e) {serviceagent.restfullservicereq Uestforfiledownload (New Uri ("Http://files.cnblogs.com/files/LittleFeiHu/ItcastWP7Simulator20110417.rar"), new Downloadprogresseventhandler ((bytes) = {s.studentname = bytes. ToString (); DoEvents (); Thread.Sleep (200); })); } private Dispatcheroperationcallback Exitframecallback = new Dispatcheroperationcallback (exitframe); public void DoEvents () {dispatcherframe nestedframe = new DispatcherFrame (); Dispatcheroperation exitoperation = Dispatcher.CurrentDispatcher.BeginInvoke (Dispatcherpriority.background, Exitframecallback, Nestedframe); Dispatcher.pushframe (Nestedframe); if (exitoperation.status! = dispatcheroperationstatus.completed) {exitoperation.abort (); }} private StatiC Object Exitframe (object state) {DispatcherFrame frame = state as dispatcherframe; Frame. Continue = false; return null; }
Code download
Update interface information in WPF