WPF 更新UI界面資料
public static class Execute
{
private static Action<Action> executor = action => action();
/// <summary>
/// 初始化UI排程器
/// </summary>
public static void InitializeWithDispatcher()
{
var dispatcher = Dispatcher.CurrentDispatcher;
executor = action =>
{
if (dispatcher.CheckAccess())
action();
else dispatcher.BeginInvoke(action);
};
}
/// <summary>
/// UI線程中執行方法
/// </summary>
public static void OnUIThread(this Action action)
{
executor(action);
}
}
使用
- 程式啟動時調用 InitializeWithDispatcher 擷取UI線程 Dispatcher
- 調用
Execute.OnUIThread(()=>
{
xxxxxxxxxxxxxxxx
});