【问题标题】:dotnet core dispatcher for observablecollection用于 observablecollection 的 dotnet 核心调度程序
【发布时间】:2017-03-06 01:34:45
【问题描述】:

.Net Core 有 Threading/Tasks 和 ObservableCollection,但我找不到调度程序服务。

如何从另一个线程的 .net 核心更新 ObservableCollection?

在 Wpf 中我可以使用调度程序服务,winform 也有类似的可能性。

谢谢

...

编辑 1:

.net core 的思想是跨平台的,所以没有专门的框架或目标。可用于 Wpf, android (xamarin), asp.net, linux(mono)...

编辑 2: Xamarin 有一个解决方案 Device.BeginInvokeOnMainThread,但我正在寻找 net Core。 https://developer.xamarin.com/api/member/Xamarin.Forms.Device.BeginInvokeOnMainThread/p/System.Action/

【问题讨论】:

  • 您能否添加有关您想要实现的设计的详细信息?你用的是什么框架?这是 ASP.net 吗?
  • 抽象所有这些的一般机制是SynchronizationContext.Post,但据我所知,Core 不提供自己的实现。 (如果是这样,它可能是使用线程池的东西。)
  • @Gusdor 没有目标框架
  • @user1714341 如果您不针对任何应用程序框架,那么序列化对集合的访问有什么要求? -1
  • @Gusdor 我不明白你在问什么。您是在谈论 io 序列化还是在用户界面上显示数据?

标签: c# .net-core


【解决方案1】:

感谢 Jeroen 的建议。我最终得到了以下代码:

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

【讨论】:

    猜你喜欢
    • 2018-12-08
    • 2019-08-01
    • 2020-02-20
    • 2021-05-31
    • 1970-01-01
    • 2022-01-12
    • 2018-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多