日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

DispatcherCore ,一个WPF异步操作常用功能库

發(fā)布時(shí)間:2023/12/4 asp.net 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DispatcherCore ,一个WPF异步操作常用功能库 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

????? ?在WPF開發(fā)中,經(jīng)常遇到跨線程的問題,以及頻繁使用跨線程操作UI線程中的界面元素,一些COM組件操作也是必須在UI主線程中使用,否則就會(huì)拋出各種無法訪問的錯(cuò)誤。是否有遇到過呢?為了解決各種跨線程訪問的問題,可能要很長的一堆代碼來完成,有沒有更好的方法呢?

????于是針對(duì)該問題本人封裝了一個(gè)WPF異步操作常用功能庫DispatcherCore,專門解決異步跨線程,需要操作UI線程的事情。

首先在程序入口處增加初始化代碼:

///目的是為了初始化UI主線程 DispatcherCore.DispatcherCore.Initialize();

初始化完了以后,無論在什么線程中使用都可以直接調(diào)用。該方法包含兩個(gè)參數(shù),一個(gè)是要在UI線程運(yùn)行的委托,另外一個(gè)是可以返回錯(cuò)誤信息的回調(diào)委托。

方法如下:

public??static? void? RunInUI(Action func, Action<Exception> action =null)

下面是調(diào)用代碼:

//該方法為同步方法,即會(huì)等待完成才會(huì)繼續(xù)執(zhí)行后面代碼 DispatcherCore.DispatcherCore.RunInUI(()=> { DoSomething(); //這里就可以寫入需要在UI 線程運(yùn)行的邏輯代碼});//該方法為異步方法 DispatcherCore.DispatcherCore.AsyncRunInUI(()=> {AsyncDoSomething(); //這里就可以寫入需要在UI 線程異步運(yùn)行的邏輯代碼 });

其他功能等待你自己發(fā)現(xiàn)吧。敬請(qǐng)小伙伴們關(guān)注微信公眾號(hào),更多分享陸續(xù)發(fā)布。

總結(jié)

以上是生活随笔為你收集整理的DispatcherCore ,一个WPF异步操作常用功能库的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。