但 WPF 就不可以用 MTAThreadAttribute,因為 WPF 必須執行在 STAThread 的環境上,又開始苦惱這個問題了,問題應該還是有解套的辦法的只是知識不足,最後在 WIKI 中看到重要的知識。
WIKI 元件物件模型
一個COM物件只能存在於一個套間。COM物件一經建立就確定所屬套間,並且直到銷毀它一直存在於這個套間。
所以只要用其他 Thread 去建立 COM 元件就不會影響到 Main Thread 了,簡單的解決問題,果然是知識不足。
ActEasyIF actConnection; var waiter = new AutoResetEvent(false); new Thread(() => { /* 建構 COM 元件 */ _actConnection = new ActEasyIF(); waiter.Set(); }).Start(); waiter.WaitOne(500); /* 等待建立結束 */
沒有留言:
張貼留言
你好!歡迎你在我的 Blog 上留下你寶貴的意見。