zoukankan      html  css  js  c++  java
  • invoke方法操作ui线程的控件属性

    列一个简单例子来说明。

    WinForm:

    这里必须利用delegate委托的invoke

     1         private void button1_Click(object sender, EventArgs e)
     2         {
     3             Thread th1 = new Thread(new ThreadStart(dod));
     4             th1.Start();
     5         }
     6 
     7         private delegate void myinvoke(int s);
     8 
     9         private void dod()
    10         {
    11             myinvoke mi = new myinvoke(dowork);
    12             mi.Invoke(2000);
    13         }
    14 
    15         private void dowork(int s)
    16         {
    17             int i = 0;
    18             while (true)
    19             {
    20                 textBox1.Text = i.ToString();
    21                 i++;
    22                 Thread.Sleep(s);
    23             }
    24         }
    25 
    26         private void Form1_Load(object sender, EventArgs e)
    27         {
    28             Control.CheckForIllegalCrossThreadCalls = false;
    29         }

    WPF:

    这里主要是Dispatcher.Invoke()的用法

     1         private void button1_Click(object sender, RoutedEventArgs e)
     2         {
     3             Thread th1 = new Thread(new ThreadStart(DoWork));
     4             th1.Start();
     5         }
     6         
     7         private void DoWork()
     8         {
     9             int i = 0;
    10             while (true)
    11             {
    12                 Dispatcher.Invoke(new Action(() =>
    13                 {
    14                     textBox1.Text = i.ToString(); 
    15                     progressBar1.Value ++;
    16                 }), System.Windows.Threading.DispatcherPriority.Background);
    17                 i++;
    18                 Thread.Sleep(500);
    19             }
    20         }
  • 相关阅读:
    TeX系列: tikz-3dplot绘图宏包
    TeX系列: MATLAB和LaTeX结合绘图
    Tex系列: pgfplots安装
    C 标准库
    C 标准库
    C 标准库
    C 标准库
    C 标准库
    C 标准库
    C 标准库
  • 原文地址:https://www.cnblogs.com/bbcar/p/2913903.html
Copyright © 2011-2022 走看看