Avalonia 試圖從非UI主線程操作UI控件的錯誤訊息[Call from invalid thread] 和 解決方法 [Dispatcher]
Avalonia 試圖從非UI主線程操作UI控件的錯誤訊息[Call from invalid thread] 和 解決方法 [Dispatcher]
資料來源: copilot + 自己
code
private async void MainTimmer_Tick(object sender, ElapsedEventArgs e)//Timer事件函數
{
if (!m_blnMainReady)
{
return;
}
MainTimmer.Stop();//防止重複執行
//Interval=100ms
if (ClosingHandover.m_blnRun)//因為無法在關帳之後立即在執行頁面跳轉,只好把程式放到Timer
{
ClosingHandover.m_blnRun = false;
LogFile.Write("MainPage Leave(ClosingHandover)");
syncthreadStop(0);
printthreadStop(0);
DeleteTimmer();
ExternalPopup.mainWindow = null;
LogFile.Write("MainPage Leave(LogoutBtn_Clicked)");
Return2LoginUI();
return;
}
Dispatcher.UIThread.InvokeAsync(async () =>
{
await POS_INVAPI.InitUI();//發票狀態初始化中 //await ExternalPopup.WaitMessageBox(0, TestWaitMessageBoxFun, "Test");
await ExternalPopup.MessageBox(0, "test");
});
} //timmer.Stop();