WPF跨线程操作GUI控件
来源:互联网 发布:注册域名能干什么 编辑:程序博客网 时间:2024/05/22 13:14
今天在实验Lua+WPF的时候碰到一个问题:
我在主线程中写的LUA虚拟机的 dofile,但当我要令LUA脚本执行阻塞的时候,同时也会阻塞UI线程。
于是我把对LUA的接口挪到另一个单独的后台线程中,专门负责与LUA脚本的交互。
编译一切正常,运行时THROW了异常,说不能在非创建UI元素的线程中改变UI元素属性。。
查了一下,C#就是这种机制,因为其GUI系统底层是内部单线程机制,所以为了避免各种乱七八糟的错误,直接禁用了跨线程的GUI元素操作。
查了一下,用了个Dispatcher的叫 “BeginInvoke” 的方法解决本问题。
其思想也就是异步调用,不过我估计是从GUI元素的dispatcher上分出时间片来启动线程。(没有深研究,不过总算搞定了这个问题)
主要代码如下,被注掉的部分是原来行不通的方法。
- WPF跨线程操作GUI控件
- 跨线程操作GUI
- 在WPF中多线程操作GUI控件,串口接…
- WPF 跨线程操作UI
- WPF简单的跨线程控件实现
- WPF 新线程中使用Invoke操作页面控件
- WPF 跨线程操作辅助方法/类
- C# 跨线程操作控件
- C#跨线程操作控件
- winform跨线程操作控件
- WPF中窗口控件的跨线程调用
- WPF中窗口控件的跨线程调用
- C#中跨线程操作控件
- C#中跨线程操作控件
- C#笔记 跨线程操作控件
- 直接调用带参数方法创建新线程及 wpf中跨线程访问控件
- 不同线程操作控件
- c# 线程操作控件
- 安装TS
- 在SQL Server2005中有如下四个排名函数
- Linux指令--文件访问权限
- Ping命令原来是这样实现的
- linux: 基本命令之:查看磁盘空间, netstat, wc简单使用
- WPF跨线程操作GUI控件
- [转]详解Linux 2.6内核新文件系统变化机制(inotify)
- How to enable pretty urls with Asp.Net MVC and IIS6
- 头大
- FLASH中影片剪辑和图形元件的区别与特点
- 为什么会有种不扎实的感觉?
- IBM MessageBroker笔记系列(Webspher MQ、MB,etc)-zz
- C# 天气预报WebService
- 更改Sql*plus的提示符