在WM下,获得当前路径处理和解决异常“Control.Invoke 必须用于与在独立线程上创建的控件交互。”

论坛 期权论坛 脚本     
匿名技术用户   2020-12-29 17:14   18   0

一、在WM上,使用的是.net精简框架,所以很多PC上用的常用的方法都没法在WM上使用

比如,获取当前路径,不能再使用AppDomain类或是Directory类,或是System.Environment类等等。

但可以使用反射机制,去取得当前路径,如下面的代码:

二、不论在PC或是WM上,使用工作线程去操作UI时,都会报错。在WM上抛出的异常是:
“Control.Invoke 必须用于与在独立线程上创建的控件交互。”

这种异常是指当前线程与创建控件线程不同步,而且工作线程不能去操作UI线程上创建的UI。

所以此时,只能使用this.Invoke方法,来返回UI线程,对UI线程进行操作。

以下是相关例子的代码:

1、使用全局变量:

声明全局变更->在工作线程中使用this.Invoke方法调用委托->完成更新操作:

2、使用Invoke的重载,使用传参数方式:

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP