2011-10-26 35 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创建要添加的一组项目(如果它们需要很长时间才能创建)(例如,它们来自数据库或网站)

相关问题