1
我想弄清楚,鑑於下面的代碼,刷新()需要發生在UI線程?它似乎工作,我想知道如果CollectionViewSource實際上是一個線程感知/安全的對象?它肯定有屬性和方法來支持調用正確的線程,只是不確定是否由開發人員決定,還是在對象內完成?Silverlight的CollectionViewSource是線程安全的嗎?
public CollectionViewSource UserList { get; private set; }
void setupCollections()
{
UserList = new CollectionViewSource();
UserList.Source = searchProvider.UserResults;
UserList.SortDescriptions.Add(new SortDescription("DisplayName", ListSortDirection.Ascending));
}
此線程在Silverlight中是否安全?
void RefreshUserList()
{
UserList.View.Refresh();
}
或者您是否需要這樣做?
void RefreshUserList()
{
// Is This Required?
UserList.Dispatcher.BeginInvoke(() =>
{
UserList.View.Refresh();
});
// Or MVVM-light Method
DispatcherHelper.CheckBeginInvokeOnUI(() =>
{
UserList.View.Refresh();
});
}