C#的方法 Dispatcher.Invoke =>

Dispatcher.Invok是WPF中特有的。使用方法如下

1)创建一个“WPF 引用程序”

2)在Window1.xaml中添加一个Label

3)在后台代码Window1.xaml.cs中

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

using System;

using System.Windows;

using System.Threading;

 

namespace WpfApplication3

{

    /// <summary>

    /// Window1.xaml 的交互逻辑

    /// </summary>

    public partial class Window1 : Window

    {

        public Window1()

        {

            InitializeComponent();

             

            // 启动一个后台线程

            Thread t = new Thread(WorkThread);

            t.IsBackground = true;

            t.Start();

        }

         

        // 后台线程

        void WorkThread()

        {

            while (true)

            {

                // 利用Dispacther.Invoke调用更新labelClock显示的内容

                // 按WPF规定:labelClock是由主线程创建的。要想在后台线程

                // 中刷新主线程创建的控件,必须通过Dispatcher.Invoke(...)

                // 来实现!

                this.Dispatcher.Invoke(

                    new Action(() => labelClock.Content 

                        = DateTime.Now.ToString("HH:mm:ss")), 

                    System.Windows.Threading.DispatcherPriority.Render);

                 

                // 后台线程停顿1秒    

                Thread.Sleep(1000);

            }

        }

    }

}

4)运行结果

原文地址:https://zhidao.baidu.com/question/139761455738845245.html

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值