簡體   English   中英

從計時器內部的ListBox中刪除

[英]Removing from ListBox inside of a Timer

ObservableCollection<String> listBoxItems = new ObservableCollection<String>();
scheduledRecordingListBox.ItemsSource = listBoxItems;

public void timerElapsed(object sender, ElapsedEventArgs e)
{
    listBoxItems.Remove(itemToBeRemoved);
}

只是我實際上正在嘗試做的一小段。 我相信是由於計時器在與我要從中刪除的ObservableCollection的GUI主線程不同的線程上運行而導致的錯誤。

如果使用的是WinForms,則只需使用System.Windows.Timer類。 它的Tick事件在UI線程上自動執行。

嘗試使用Invoke,它在擁有控件的基礎窗口句柄的線程上執行委托。

您也可以在此頁面中查看部分計時器

這應該做的把戲:

public void timerElapsed(object sender, ElapsedEventArgs e)
{
    this.Invoke(new Action(() => listBoxItems.Remove(itemToBeRemoved)));
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM