星空网 > 软件开发 > ASP.net

WPF 中更新界面信息

 

1.Dispatcher.BeginInvoke

  int ii = 0;      new Thread(new ParameterizedThreadStart((i) =>      {        while (true)        {          Thread.Sleep(400);          Dispatcher.BeginInvoke(new Action(() =>          {            ii += 1;            btn2.Content = ii.ToString();          }));        }      })).Start();

2.动态回调中更新进度条(1中更新界面的方式已经不能直接奏效,需要调用DoEvent()方法才能及时更新界面信息)

   private async void Button_Click(object sender, RoutedEventArgs e)    {      ServiceAgent.RestFullServiceRequestForFileDownload(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;    }

  

 代码下载




原标题:WPF 中更新界面信息

关键词:wpf

wpf
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流