博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF 之 调用线程必须为 STA,因为许多 UI 组件都需要
阅读量:6404 次
发布时间:2019-06-23

本文共 572 字,大约阅读时间需要 1 分钟。

  WPF中,代码中准备控制控件内容时,有时会报错:“ 调用线程必须为 STA,因为许多 UI 组件都需要 ”。

  如在winform下面,使用多线程时,控件的值读取是可以的,但如果要更改,那么就必须进行一些特别的处理。WPF中也一样。

  首先,WPF中,当报上面那个错误时,代码可以改成类似以下:

void authOK(AuthorizationResult auth)  {      App.Current.Dispatcher.Invoke((Action)(() =>      {          labInfo.Content = "登录成功";          btnLogin.IsEnabled = true;            labUser.Content = auth.User.Name;          labToken.Content = auth.AccessToken;          loginWin.Close();          client.Close();      }));  }

  Dispatcher是一个线程控制器,反正你要控制线程里跑的东西,就要经过它。那么WPF里面,有个所谓UI线程,后台代码不能直接操作UI控件,需要控制,就要通过这个Dispatcher。

转载地址:http://ujnea.baihongyu.com/

你可能感兴趣的文章
【366天】跃迁之路——程序员高效学习方法论探索系列(实验阶段124-2018.02.06)...
查看>>
POJ3070-Fibonacci(矩阵快速幂)
查看>>
[vue插件]基于vue2.x的电商图片放大镜插件
查看>>
标准的组件结构
查看>>
vue——一个页面实现音乐播放器
查看>>
SVG 扬帆起航
查看>>
NET Core-学习笔记(二)
查看>>
职业生涯上的点点滴滴
查看>>
Linux下添加新硬盘,分区及挂载
查看>>
一起来将vscode变成私人定制笔记本
查看>>
Flutter 云音乐
查看>>
RecyclerView实现多type页面
查看>>
个人的web商城网站
查看>>
debian fcitx
查看>>
排中律与实无穷问题的性质分析
查看>>
08/23 学习总结
查看>>
关于Ubuntu下安装phpmyadmin后mysqli丢失的解决
查看>>
物理层
查看>>
linux多网卡路由设置
查看>>
win7环境下的栈溢出与实战
查看>>