作者noah06 (小No)
看板C_Sharp
標題[問題] 使用BackgroundWorker 執行 WebBrower 發生非單一執行緒
時間Thu May 1 14:01:43 2008
我想寫一個應用程式
使用 BackgroundWorker 在幕後呼叫 WebBrower 來擷取許多網頁上的資料
但 WebBrower元件好像必須要在主執行緒執行, 不知道由沒有人有解決的方法呢
麻忙大家了!!
類似的錯誤資訊:
例外詳細資訊: System.Threading.ThreadStateException: 無法產生 ActiveX 控制項
'8856f961-340a-11d0-a96b-00c04fd705a2',因為目前的執行緒不是在單一執行緒
Apartment。
[ThreadStateException: 無法產生 ActiveX 控制項
'8856f961-340a-11d0-a96b-00c04fd705a2',因為目前的執行緒不是在單一執行緒
Apartment。]
System.Windows.Forms.WebBrowserBase..ctor(String clsidString) +3653451
System.Windows.Forms.WebBrowser..ctor()
麻煩大家了~~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.117.219.210
1F:→ qweqweqweqwe:"擷取許多網頁上的資料"應該不用這個元件吧 05/01 14:57
2F:→ noah06:我是要擷取網頁內容的一部份重要資訊 如 網頁table的內容 05/01 17:29
3F:→ noah06:故使用 WebBrowser的GetElementsByTagName很方便 05/01 17:30
4F:→ noah06:但因為要抓很多網頁, 故不知是否有人能有背景執行的方法 05/01 17:32
5F:推 MRjk:不能放在主執行緒嗎? 05/01 17:35
6F:推 EricTsai:main thread建好WebBrowser (不確定要不要加到Form上) 05/01 23:27
7F:→ EricTsai:傳到另一個Thread,然後判斷InvokeRequired,不行嗎? 05/01 23:27
8F:→ EricTsai:(我習慣用ThreadPool/Thread) 05/01 23:44
9F:→ noah06:您好我對main thread建好WebBrowser傳到另一個Thread 05/02 08:39
10F:→ noah06:不太了解,不知道您是否有個您寫過的簡單範例可借我參考 05/02 08:39