看板 C_Sharp 關於我們 聯絡資訊
我想寫一個應用程式 使用 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
qweqweqweqwe:"擷取許多網頁上的資料"應該不用這個元件吧 05/01 14:57
noah06:我是要擷取網頁內容的一部份重要資訊 如 網頁table的內容 05/01 17:29
noah06:故使用 WebBrowser的GetElementsByTagName很方便 05/01 17:30
noah06:但因為要抓很多網頁, 故不知是否有人能有背景執行的方法 05/01 17:32
MRjk:不能放在主執行緒嗎? 05/01 17:35
EricTsai:main thread建好WebBrowser (不確定要不要加到Form上) 05/01 23:27
EricTsai:傳到另一個Thread,然後判斷InvokeRequired,不行嗎? 05/01 23:27
EricTsai:(我習慣用ThreadPool/Thread) 05/01 23:44
noah06:您好我對main thread建好WebBrowser傳到另一個Thread 05/02 08:39
noah06:不太了解,不知道您是否有個您寫過的簡單範例可借我參考 05/02 08:39