[问题] 请问呼叫COM元件时会卡UI要怎么解决?

楼主: 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:00
COM有去读写到UI
楼主: sam319 (Sam)   2018-09-27 18:42:00
COM是第三方元件,跟我的UI没有关系
作者: testPtt (测试)   2018-09-27 19:32:00
await似乎会影响到你的btn
楼主: sam319 (Sam)   2018-09-28 02:09:00
await Task.Delay(5000)这样等5秒UI都还是能响应的状态说
作者: firose (guest也是也是也是也是也)   2018-09-28 03:55:00
它是一个STA COM 最后还是要由建立它的人来执行函数
楼主: sam319 (Sam)   2018-09-28 11:51:00
STAThread吗?请问有强制他跑在其他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释放案牛或执行 完成了再开始

Links booklink

Contact Us: admin [ a t ] ucptt.com