диспетчер ядра dotnet для observablecollection

#c# #.net-core

#c# #.net-ядро

Вопрос:

В .Net Core есть потоки / задачи и ObservableCollection, но я не могу найти службу диспетчеризации.

Как я могу обновить ObservableCollection из .net core из другого потока?

В Wpf я могу использовать диспетчерскую службу, и winform обладает аналогичными возможностями.

Спасибо

Правка 1:

Идея .net core является кроссплатформенной, поэтому нет выделенной платформы или целевого объекта. Он может быть использован в Wpf, Android (xamarin), asp.net, Linux (mono)…

Правка 2: у Xamarin есть устройство решения.BeginInvokeOnMainThread, но я ищу net Core. https://developer.xamarin.com/api/member/Xamarin .Формы.Устройство.BeginInvokeOnMainThread/p/System.Действие/

Комментарии:

1. Можете ли вы добавить подробности о дизайне, которого вы пытаетесь достичь? Какой фреймворк вы используете? Это ASP.net ?

2. Общий механизм, который абстрагируется от всего этого, является SynchronizationContext.Post , но, насколько я знаю, Core не предоставляет свою собственную реализацию. (Если это так, то, вероятно, это будет что-то, использующее пул потоков.)

3. @Gusdor нет целевой платформы

4. @user1714341 если вы не ориентируетесь на какую-либо платформу приложений, каковы требования для сериализации доступа к коллекции? -1

5. @Gusdor Я не понимаю, о чем вы спрашиваете. вы говорите о сериализации ввода-вывода или отображении данных в пользовательском интерфейсе?

Ответ №1:

Благодаря предложению Джеруна. В итоге я получил следующий код:

         await Task.Run(() =>
        {
            // Do some process
        }).ContinueWith(x =>
        {
           // Update ObservableCollection here
        }, TaskScheduler.FromCurrentSynchronizationContext());