2010-09-15 58 views

回答

2

尝试使用属性控制:InvokeRequired - http://msdn.microsoft.com/en-us/library/ms171728%28VS.80%29.aspx

private delegate void AddItemCallback(object o); 

private void AddItem(object o) 
{ 
    if (this.listView.InvokeRequired) 
    { 
     AddItemCallback d = new AddItemCallback(AddItem); 
     this.Invoke(d, new object[] { o }); 
    } 
    else 
    { 
     // code that adds item to listView (in this case $o) 
    } 
} 
+0

是否将此代码添加到我的listview被创建或我要添加到我的listview的位置? – sooprise 2010-09-15 20:06:17

0

使用Task,做了更新,计划使用TaskScheduler.FromCurrentSynchronizationContext的UI。

http://msdn.microsoft.com/en-us/library/dd997394.aspx

的优势,这种做法在Control.Invoke是,它会在WPF,Silverlight中, Windows窗体工作,而Control.Invoke是Windows窗体只。

P.S.如果您尚未安装.NET 4.0,则TaskTaskScheduler可在Rx library中获得。