zoukankan      html  css  js  c++  java
  • WPF 下 label 的刷新

    WPF下,label控件并没有什么 Refresh() 的方法。那么现在问题就来了。

    假设有这么个场景:WPF窗体上有一个按钮,一个Label,按下按钮,触发一些耗时的操作;在操作之前,Label显示一个信息,说现在开始要做什么什么东西了。

    结果,按钮按下去以后,系统会处于忙碌状态,而Label该先显示的内容,却没有显示,一直等到耗时操作完毕,才突然显示。

    这不科学呀,完全失去了提示的意义。明明是 label.Content = "努力与服务器连接中,请稍候。。。"; 先执行的,怎么结果姗姗来迟?

    原因不去深究了。我对WPF也不感兴趣。WPF就是这么任性。解决办法是将耗时操作放到一个新线程里执行:

    LoginWindow loginWin;
            SocketIOClient client;
            private void Button_Click(object sender, RoutedEventArgs e)
            {
                labInfo.Content = "努力与服务器连接中,请稍候。。。";
                btnLogin.IsEnabled = false;
    
                Thread thr = null;
                thr = new Thread(new ThreadStart(BuildConnection));
                thr.Priority = ThreadPriority.Lowest;
                thr.IsBackground = true;
                thr.Start();
            }
            void BuildConnection()
            {
                client = new SocketIOClient();
    
                client.OnConnected += login;
                client.OnAuthOK += authOK;
    
                client.Execute();
            }


  • 相关阅读:
    git 强制覆盖本地
    给mysql添加账户并且赋予权限
    laravel 地址栏传参不了问题
    订单系统开发02
    熵——信息增益
    熵——导读
    熵——自信息
    tensorflow在文本处理中的使用——skip-gram & CBOW原理总结
    霍夫曼树
    tensorflow在文本处理中的使用——Word2Vec预测
  • 原文地址:https://www.cnblogs.com/leftfist/p/4257838.html
Copyright © 2011-2022 走看看