DispatcherCore ,一个WPF异步操作常用功能库
生活随笔
收集整理的這篇文章主要介紹了
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)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .NET6之MiniAPI(十一):本地
- 下一篇: .NET6之MiniAPI(十):基于策