2010-09-15 57 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中獲得。