C# listbox ItemSelectionChanged()事件的UI响应

C# listbox ItemSelectionChanged()事件的UI响应,c#,responsive-design,selectionchanged,C#,Responsive Design,Selectionchanged,如果某些数据可用,我想启用一个按钮: private void myListBox_ItemSelectionChanged(object sender, EventArgs e) { downloadButton.Enabled = myList.SelectedItems.Cast<myClass.myObject>().Any(x => x.Data != null); } private void myListBox\u ItemSelectionChang

如果某些数据可用,我想启用一个按钮:

private void myListBox_ItemSelectionChanged(object sender, EventArgs e)
{
     downloadButton.Enabled = myList.SelectedItems.Cast<myClass.myObject>().Any(x => x.Data != null);
}
private void myListBox\u ItemSelectionChanged(对象发送方,事件参数e)
{
downloadButton.Enabled=myList.SelectedItems.Cast().Any(x=>x.Data!=null);
}
问题是UI的响应性不强,行为怪异(有时当我单击选择时,当我单击并选择其他元素时,选择内容不会发生更改)。我想这是因为这段代码


有任何加快速度的建议吗?

请执行myList.SelectedItems.Cast()。后台线程中的任何(x=>x.Data!=null)部分。这主意不错,但是每次单击都会启动一个新线程(并且更改了选择)…如果有线程池,则不会。首先测量操作需要多长时间..通常这不应该是一个问题。。。对我来说,这样的事情会引起一些问题,这有点奇怪。。但是,如果您已经测量到这一行花费的时间太长,那么要么您必须以不同的方式执行该操作,要么只是将代码转移到后台线程(同样……应该在线程池中)。顺便问一下,这是什么?WPF?商店应用程序。。。?