Pregunta

Estoy tratando de resolver esto, dado el siguiente código, no la necesidad de actualización () que se produzca en el subproceso de interfaz de usuario? Parece que funciona, y me pregunto si el CollectionViewSource es en realidad un objeto hilo consciente / seguro? Que sin duda tiene propiedades y métodos para apoyar a llamar en la secuencia correcta, pero no está seguro de si lo que queda hasta el desarrollador, o si esto se lleva a cabo dentro del objeto?

public CollectionViewSource UserList { get; private set; }
    void setupCollections()
    {
        UserList = new CollectionViewSource();
        UserList.Source = searchProvider.UserResults;
        UserList.SortDescriptions.Add(new SortDescription("DisplayName", ListSortDirection.Ascending));
    }

Es esto seguro de rosca en Silverlight ???

void RefreshUserList()
    {
        UserList.View.Refresh();
    }

O es que hay que hacer algo como esto?

void RefreshUserList()
    {
        // Is This Required?
        UserList.Dispatcher.BeginInvoke(() =>
            {
                UserList.View.Refresh();
            });
        // Or MVVM-light Method
        DispatcherHelper.CheckBeginInvokeOnUI(() =>
            {
                UserList.View.Refresh();
            });
    }
¿Fue útil?

Solución

Documentación de Microsoft por el CollectionViewSource el objeto CollectionViewSource no es seguro para subprocesos. Parece que esto no es informado de que Hilo de seguridad, a pesar de que no parece funcionar en muchas situaciones.

Esto puede ser debido a que el método que se llama en realidad está en la vista, no el CollectionViewSource. La vista devuelve un ICollectionView interfaz -. no se conocen los detalles de la clase de apoyo, excepto que el método CreateView () crea este

Yo sugeriría que siempre tenemos en cuenta que esto no seguro para subprocesos y despacho a la secuencia correcta, a pesar de mis pruebas de la View.Refresh () por lo menos sugiere que es seguro para subprocesos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top