作者:
sam319 (Sam)
2018-09-27 15:02:49我有個按鈕點下後會去呼叫COM元件初始,
按鈕事件寫法如下:
async void btn_Clicked(object sender, EventArgs e)
{
// do something...
await Task.Run(() => comObject.Init());
// do something...
}
已經用多緒打包COM元件的初始,
但仍會把整個UI卡死好幾秒後,
才恢復反應
請問這要怎麼解決?
謝謝
作者:
testPtt (測試)
2018-09-27 16:19:00COM有去讀寫到UI
作者:
sam319 (Sam)
2018-09-27 18:42:00COM是第三方元件,跟我的UI沒有關係
作者:
testPtt (測試)
2018-09-27 19:32:00await似乎會影響到你的btn
作者:
sam319 (Sam)
2018-09-28 02:09:00await Task.Delay(5000)這樣等5秒UI都還是能響應的狀態說
作者: firose (guest也是也是也是也是也) 2018-09-28 03:55:00
它是一個STA COM 最後還是要由建立它的人來執行函數
作者:
sam319 (Sam)
2018-09-28 11:51:00STAThread嗎?請問有強制他跑在其他Thread的方式嗎?
作者: lightyen (lightyen) 2018-09-30 02:44:00
時代的眼屎
作者:
Litfal (Litfal)
2018-10-02 19:47:00另外開個sub.exe專門控制COM,主程式跟sub.exe做溝通
作者:
Timba (踢音霸)
2018-10-09 13:23:00寫個 Timer RS232 還是COM 啥的動作都丟進去沒動作時 Timer.Start() 然後移動視窗 還是跑按鈕先Stop釋放案牛或執行 完成了再開始