【WPF】调用线程必须为STA,因为许多UI组件都需要
前言
在进行WPF界面跳转时,当我登陆完成后,需要跳转到主界面,遇到了一下这个问题:调用线程必须为STA,因为许多UI组件都需要, 困恼了小编半天。终于自己敢去尝试,解决了。
解决办法:
在登陆结果处理时,加入Dispatcher,Dispatcher的作用是用于管理线程工作项队列,类似于Win32中的消息队列,Dispatcher的内部函数,仍然调用了传统的创建窗口类,创建窗口,建立消息泵等操作。
Dispatcher可以参考学习一下。
/// <summary>/// 登录结果处理/// </summary>/// <param name="result"></param>private void HandleLoginResult(NIM.NIMLoginResult result){DemoTrace.WriteLine(result.LoginStep.ToString());App.Current.Dispatcher.Invoke((Action)(() =>{MessageBox.Show("登录成功");MainWindow windows = new MainWindow();this.Hide();windows.Show();}));}
总结: 勇于尝试,不断总结,要学习的东西很多很多。
【WPF】调用线程必须为STA,因为许多UI组件都需要相关推荐
- WPF 之 调用线程必须为 STA,因为许多 UI 组件都需要
WPF中,代码中准备控制控件内容时,有时会报错:" 调用线程必须为 STA,因为许多 UI 组件都需要 ". 如在winform下面,使用多线程时,控件的值读取是可以的,但如果要更 ...
- 调用线程必须为 STA 因为许多 UI 组件都需要
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! WPF中 ...
- 调用线程必须为 STA,因为许多 UI 组件都需要
调用线程必须为 STA,因为许多 UI 组件都需要 情况:将底层推送的试验日志展示到日志界面 出现错误:调用线程必须为 STA,因为许多 UI 组件都需要 原因:引起异常是因为那么WPF里面,有个所谓 ...
- “ 调用线程必须为 STA,因为许多 UI 组件都需要 ”错误
Application.Current.Dispatcher.Invoke((Action)delegate{//do something }); 相关链接: Dispatcher实现跨线程操作,从而 ...
- WPF 调用线程无法访问此对象,因为另一个线程拥有该对象
WPF跟WinForm在这一点上是相同的:简单点来讲就是--刷新界面的活只能在UI线程里跑.你的问题是:你试图在另一个线成里刷新UI,这时候错误就会抛出,因为非UI线程是不能亲自刷新UI的,它们需要告 ...
- Wpf 调用线程无法访问此对象,因为另一个线程拥有该对象,解决方案
1.Wpf 多线程修改UI示例: //启动线程修改UI,抛出异常 ThreadPool.QueueUserWorkItem((q) => {button.Content = "张三&q ...
- WPF [调用线程无法访问此对象,因为另一个线程拥有该对象。] 解决方案以及如何实现字体颜色的渐变...
为什么80%的码农都做不了架构师?>>> <Window x:Class="MyWPFApp.MainWindow"xmlns="http: ...
- WPF异常:调用线程无法访问此对象,因为另一个线程拥有该对象。
WPF项目中,在viewmodel类中(非ui类),新建了一个异步调用,代码如下: (new Action(delegate { try { MakeSunLine(); } catch (Excep ...
- WPF不同线程之间的控件的访问
WPF不同线程之间的控件是不同访问的,为了能够访问其他线程之间的控件,需要用Dispatcher.Invoke执行一个新的活动即可. 例如: public void SetNotes(string n ...
- C#技巧【调用线程无法访问此对象,因为另一个线程拥有该对象的问题的解决办法】【C#读写EXCEL源码提示“office检测到此文件存在一个问题。为帮助保护您的计算机,不能打开此文件”的解决】
SYD8801是一款低功耗高性能蓝牙低功耗SOC,集成了高性能2.4GHz射频收发机.32位ARM Cortex-M0处理器.128kB Flash存储器.以及丰富的数字接口.SYD8801片上集成了 ...
最新文章
- 深度学习 - 相关名词概念
- 推荐一款 Java 对象映射神器
- c语言学生信息系统 完整版,C语言 学生信息管理系统(完整版).docx
- 基因分子生物学(1)-基因常识与DNA常识
- Android之集成友盟推送功能
- 驱动开发之 设备读写方式:缓冲区方式
- datatable 动态显示/隐藏列
- wegwegwegwegweg
- 2011-10-18 22:20 mysql 中IFNULL 、IF、CASE 语句介绍
- Daily Scrum 11.5日
- 数据预处理第3讲:归一化与离散化
- 天天生鲜项目实战-思路 数据库设计
- 国内外IGS数据及产品下载网站
- css3 clac函数的易错整理
- 利用高频信号改变钢丝磁性来实现大量存储信息的钢丝录音机
- 【笔记】软件测试04——MySQL
- 进化:屌丝的互联网逆袭之路
- 软考:头脑风暴与德尔菲法的区别(转)
- 高中人教版地理教案三-Leo老师
- C++ Vecor 清空内存
热门文章
- 简单工厂模式--计算器代码及UML图
- C# GridView中DataFormatString属性的取值
- 魅族mx4pro刷linux,魅族MX4 Pro刷recovery教程_魅族MX4 Pro第三方recovery下载
- Linux VS code安装Monaco字体
- PHP无损调整照片大小,怎么无损放大图片,批量修改图片大小而不失真,照片无损放大软件...
- 关于财务BI系统-报表分析(全)
- win2019微软更新服务器,微软2019 Windows 10更新十一月版正式版推送
- 最早设计计算机的目的是进行科学计算,其主要计算的问题面向,北京师范大学计算机试题1答案...
- 搜索引擎推荐(可以代替谷歌的搜索引擎)
- 三星 s9 android 9,美国V版三星S9/S9+迎来安卓9更新