• WPF开发中的多线程的问题


    今天帮助同事做了一个WPF版的多线程demo,分享给大家。

    要实现的问题就是非主线程thread1 去后台不停的取新数据,当有新数据的时候就会展示到前台。

    我给他做的demo实现一个按秒的计数器,随着时间然后每秒数据加1,

    这个demo涉及到的点有 多线程,垮线程更改控件的值Dispatcher的使用

    1、我们新建项目 WPF项目,demo

    2、在设计器上添加一个控件

     <Label Content="Label" Name="m1" HorizontalAlignment="Left" Margin="197,57,0,0" VerticalAlignment="Top" FontSize="40"/>

    3、新建业务类

    public class Model
        {
            public String Data;
        }
        public delegate void Exe(Model a);
        public class WillDo
        {
            public event Exe Output;
            public void 后台数据方法()
            {
                int i = 1;
                while (true)
                {
                    Output(new Model() { Data = i.ToString() });
                    i++;
                    Thread.Sleep(300);
                }
            }
        }

    4、在设计器的后台代码上加入下面的代码

     public partial class MainWindow : Window
        {
            WillDo c = new WillDo();
            public MainWindow()
            {
                InitializeComponent();
                c.Output += C_Output;
            }
    
            private void C_Output(Model a)
            {
                this.Dispatcher.Invoke(new Action(() =>
                    {
                        m1.Content = a.Data.ToString();
                    }));
            }
    
            private void Window_Loaded(object sender, RoutedEventArgs e)
            {
                var th1 = new Thread(() =>
                  {
                      c.后台数据方法();
                  });
    
                th1.IsBackground = true;
                th1.Start();
            }
        }

    5、做的效果如下

  • 相关阅读:
    700. Search in a Binary Search Tree
    100. Same Tree
    543. Diameter of Binary Tree
    257. Binary Tree Paths
    572. Subtree of Another Tree
    226. Invert Binary Tree
    104. Maximum Depth of Binary Tree
    1、解决sublime打开文档,出现中文乱码问题
    移植seetafaceengine-master、opencv到ARM板
    ubuntu16.04-交叉编译-SeetaFaceEngine-master
  • 原文地址:https://www.cnblogs.com/sexintercourse/p/6694596.html
Copyright © 2020-2023  润新知