我想添加項目到一個不同的線程列表視圖比它創建和我正在獲取跨線程錯誤。我怎樣才能使這個元素在其他線程訪問?將項目添加到不同線程的ListView? (跨線程操作無效)
0
A
回答
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
使用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,則Task
和TaskScheduler
可在Rx library中獲得。
相關問題
- 1. c# - 跨線程操作無效ListView
- 2. 跨線程操作無效
- 3. 跨線程操作無效
- 4. 跨線程操作無效
- 5. 跨線程操作無效
- 6. 跨線程操作無效
- 7. 跨線程操作無效
- 8. 跨線程操作無效:
- 9. 「跨線程操作無效」的行爲
- 10. BackgroundWroker跨線程操作無效
- 11. VB.NET跨線程操作無效
- 12. C#Console.SetOut跨線程操作無效
- 13. C#跨線程操作無效
- 14. 跨線程操作無效錯誤
- 15. .NET BackGroundWorker - InvalidOperationException:跨線程操作無效
- 16. 獲取跨線程操作SetWindowPos()無效
- 17. VB.net跨線程操作無效
- 18. BackgroundWorker with ProgressBar - 跨線程操作無效
- 19. BackgroundWorker - 跨線程操作無效
- 20. 錯誤:System.InvalidOperationException:跨線程操作無效
- 21. 線程安全問題:跨線程操作無效
- 22. 從其他線程獲取listboxitems:跨線程操作無效
- 23. SerialPorts和多線程 - 跨線程操作無效
- 24. VB.NET [跨線程操作無效:控制'txtIncomingText'從線程訪問........]
- 25. 跨線程操作
- 26. 跨線程操作
- 27. 跨線程操作
- 28. 將項目添加到JavaFx中的ListView ...線程?
- 29. 跨線程操作無效的無效圖形對象
- 30. 調用目標投擲無效跨線程操作異常
是否將此代碼添加到我的listview被創建或我要添加到我的listview的位置? – sooprise 2010-09-15 20:06:17