2011-03-02 79 views
1

我使用以下代碼來計算html表中的行數,將該數字存儲在for循環中,該循環用於從<td>每一行。如何在For循環中發生某些事情時增加數字

Table myTable = browser.Div(Find.ById("resultSpan")).Table(Find.First()); 

      int numRows = myTable.TableRows.Count; 
      List<string> myList = new List<string>(); 
      for (int i = 1; i < numRows; i++) 
      { 
       myList.Add(myTable.TableRows[i].TableCells[1].Text); 
      } 

我把我的窗體上label控制和我基本上希望它能夠實時地增加,所以我可以看到如何快速程序解析數據。

平均而言,我正在處理〜2000行,所以需要很長時間,我希望能夠看到狀態。上面的代碼使用WatiN,但我確定這是一個C#問題。

編輯這是比我以爲 -

for (int i = 1; i < numRows; i++) 
      { 
       myList.Add(myTable.TableRows[i].TableCells[1].Text); 
       label1.Text = i.ToString(); 
      } 
+0

抱歉,我想提供status update我誤解了你的問題:) – Shoban

+0

@Shoban,我希望我的表單上的'label'能夠反映出'int i'。 –

+1

檢查這個問題。 http://stackoverflow.com/questions/1194620/c-newbie-show-progress-during-a-loop-wpf會嘗試一個例子。 – Shoban

回答

1

您可能需要使用BackgroundWorker,你在這兒不會阻止你的用戶界面更容易,這樣你就可以通過BackgroundWorker的

+0

這個程序有一個工作,所以阻止用戶界面不是問題,但將使用BackgroundWorker加快解析的HTML? –

+0

我不會加快解析速度,但它會給你一個跟蹤進度的好方法。你無法更新標籤的原因是你在UI線程上運行繁重的任務,所以它必須等到你的任務完成。如果你能夠削減你的HTML,那麼你可以使用PLINQ [(Parallel.For)](http://www.codeproject.com/KB/cs/aforge_parallel.aspx)多個部分使它成爲多核(處理器內核)這可能會加快處理速度。 –

相關問題