2011-10-26 68 views
0

一個雙贏的形式列表框想象一下,我有以下兩種方法:如何添加元素,使用TPL

void AddEvenNumbers() 
{ 
    for(int i=0; i<10000000; i+=2) 
    { 
    listbox1.items.add(i); 'just coded by hand, did not really test 
    } 
} 

void AddOddNumbers() 
{ 
    for(int i=1; i<10000000; i+=2) 
    { 
    listbox1.items.add(i); 'just coded by hand, did not really test 
    } 
} 

我調用這些方法(在Windows窗體)以同步的方式(工作正常):

void button_click(...) 
{ 
    AddEvenNumbers(); 
    AddOddNumbers(); 
} 

如何使用第三方物流(並行庫)來達到同樣的最好的方式相對於以下(約添加元素的順序,以列表框不擔心)?

  • 該應用不應該表現爲「沒有響應」
  • 列表框需要被更新/刷新(瞬間)時被添加的物品(未完成時,整個過程)。

我正在學習TPL並嘗試使用WinForms應用這些概念(成功率極低)。我嘗試了幾種方法,但沒有成功。

另外,在將TPL應用到WinForms之前,我是否應該考慮一些基本的事情(只是想確保我不會錯過任何東西)。

高度讚賞你在此的時間。

回答

0

這是不可能的。
您只能在UI線程上與UI進行交互。

但是,您可以使用TPL創建要添加的一組項目(如果它們需要很長時間才能創建)(例如,它們來自數據庫或網站)

相關問題