技术1
经验5637
魅力4
人气161
分享46
原创2
注册时间2021-7-5
最后登录2024-4-25
阅读权限255
在线时间199 小时
主题63
回帖420
管理员
- 积分
- 3950
- 人气
- 161
- 分享
- 46
|
WPF中,在非主线程上,访问窗体控件是不被允许的。只有把语句放在如下所示的代码里面,才能消除报错
[C#] 纯文本查看 复制代码 this.Dispatcher.Invoke(new Action(delegate
{
}));
于是乎,我就把Thread类中所有要执行语句都放进这里面来了。
但是,我发现多线程并没有什么用,界面该假死还是假死。
我认为可能是Thread的问题。于是我又尝试了BackgroundWorker
嗯,依旧没什么用。
于是乎我花了几小时查找资料,发现问题出在开头所提到的语句。这块语句原理是将操作委托给主线程,让主线程去操作控件,以避免报错。所以,如果我把所有耗时操作放进这里面,那么多线程等同于摆设。
不偷懒了,我就一个个找到报错的语句,并把这些个别语句放进开头的代码块,果然好了。
|
|