安徽天长建设局网站,中信建设官方网站软件下载,wordpress地图主题,服装市场调研报告在WPF开发中#xff0c;经常遇到跨线程的问题#xff0c;以及频繁使用跨线程操作UI线程中的界面元素#xff0c;一些COM组件操作也是必须在UI主线程中使用#xff0c;否则就会抛出各种无法访问的错误。是否有遇到过呢#xff1f;为了解决各种跨线程访问的问题#xff0c;… 在WPF开发中经常遇到跨线程的问题以及频繁使用跨线程操作UI线程中的界面元素一些COM组件操作也是必须在UI主线程中使用否则就会抛出各种无法访问的错误。是否有遇到过呢为了解决各种跨线程访问的问题可能要很长的一堆代码来完成有没有更好的方法呢 于是针对该问题本人封装了一个WPF异步操作常用功能库DispatcherCore专门解决异步跨线程需要操作UI线程的事情。首先在程序入口处增加初始化代码///目的是为了初始化UI主线程
DispatcherCore.DispatcherCore.Initialize();初始化完了以后无论在什么线程中使用都可以直接调用。该方法包含两个参数一个是要在UI线程运行的委托另外一个是可以返回错误信息的回调委托。方法如下public static void RunInUI(Action func, ActionException action null)下面是调用代码//该方法为同步方法即会等待完成才会继续执行后面代码
DispatcherCore.DispatcherCore.RunInUI(()
{
DoSomething(); //这里就可以写入需要在UI 线程运行的逻辑代码});//该方法为异步方法
DispatcherCore.DispatcherCore.AsyncRunInUI(()
{AsyncDoSomething(); //这里就可以写入需要在UI 线程异步运行的逻辑代码
});其他功能等待你自己发现吧。敬请小伙伴们关注微信公众号更多分享陆续发布。