2013-02-23 17 views
0

如何使WebBrowserDocumentCompleted正在進行的操作在單獨的線程中工作。所以它不會影響的主要形式(不掛整個應用程序)WebBrowserDocumentCompleted

Form1中

private void bStart_Click(object sender, EventArgs e) 
     { 
      wb.Navigate("http://www.moswar.ru"); 
     } 

窗體2

public void wb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
      { 
       wb = sender as WebBrowser; 
       ThreadPool.QueueUserWorkItem(new WaitCallback((object unused) => 

        { 

         if (wb.Document.GetElementById("login-email") != null) 
         { 
          wb.Document.GetElementById("login-email").InnerText = "[email protected]"; 
          wb.Document.GetElementById("login-password").InnerText = "MyPassword"; 
          GetElementsByClassName(new string[] { "button luxury" })[0].InvokeMember("click"); 
         } 


       if (e.Url.AbsoluteUri == "http://www.moswar.ru/player/" || e.Url.AbsoluteUri == "http://www.moswar.ru/player/#login") 
       { 
        wb.Navigate("http://www.moswar.ru/metro/"); 
       } 
        })); 
      //and so on ..... 
      } 
+0

要小心,當你寫你的電子郵件和在這樣的論壇中的一些密碼。我能夠登錄該網站,因爲您離開了您的信息。我編輯並刪除它:) – 2013-02-25 03:59:39

+0

這個帳戶是不是非常親愛的我=))對我來說很重要如何解決我的問題=)) – GeKson 2013-02-25 15:13:41

回答

0
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{ 
    ThreadPool.QueueUserWorkItem(delegate 
    { 
    MessageBox.Show("hi"); 
    } 
} 
+0

**它沒有幫助** ThreadPool.QueueUserWorkItem(新的WaitCallback((未使用的對象)=> { //我的方法 })); **當DocumentCompleted開始跟隨鏈接** – GeKson 2013-02-23 09:17:33

+0

@GeKson時,所有應用程序都會掛起,當然,如果使用WAITcallback,它將一直等待,直到動作完成。編輯你的問題並顯示你的代碼。還要描述「跟隨鏈接」的含義。如果你完成了,留下這裏評論 – VladL 2013-02-23 09:39:00