zoukankan      html  css  js  c++  java
  • WPF多线程

    需求:WPF在主线程操作数据库等一些联网操作时,会影响界面造成卡顿,GUI卡顿;

    解决方案:引入多线程解决来解决GUI卡顿问题。

     

    新建线程

    方法一(在新建线程中调用已有函数)

    Thread thread = new Thread(ConnMySql);//ConnMySql是子函数,在此线程调用子函数
    thread.Start();

     方法二(在新建线程中执行相关代码)

    new Thread(() =>
    {
            sqlHelper.connMysql();
    }).Start();

    方法三(在新建线程中调用已有函数,且更新界面(GUI))

    private void Button_Click(object sender, RoutedEventArgs e)
    {
      Thread thread = new Thread(ConnMySQL);
      thread.Start();
    }
    private void ConnMySQL()
    {
      sql = sqlHelper.connMysql();
      MessageBox.Show(sql);
      Thread.Sleep(100);
      //利用Dispatcher更新主界面控件属性
      this.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart)delegate {
        label.Content = sql;
      });
    }

     

    new Thread(() => {
                    this.Dispatcher.Invoke(DispatcherPriority.Normal, (ThreadStart)delegate {
                        form1HidenForm2Visible();
                    });
                }).Start();

    目前我的理解时线程指定的函数只会执行一次,执行完毕后就不再执行,至于线程有没有销毁目前不得而知。

  • 相关阅读:
    奇异值分解
    特征值和特征向量
    矩阵
    矢量化
    符号数组
    通用函数
    数据平滑
    多项式拟合
    协方差/相关矩阵/相关系数
    json
  • 原文地址:https://www.cnblogs.com/cnwy/p/12093418.html
Copyright © 2011-2022 走看看