【发布时间】:2017-06-04 12:55:16
【问题描述】:
.NET Core 是否存在类似 Dispatcher 的内容?
我需要在 .NET Core 中创建一个线程,并且能够发送要在该线程上调用的操作。另外,我希望能够使用可用于async/await 东西的TaskScheduler。
这是否存在于某个地方?
【问题讨论】:
-
我在这里没有看到任何研究证据。你能提供一些链接并解释它们对你没有帮助吗?
-
AFAIK Task.Run 应该仍然存在并且运行良好,您已经尝试过了吗? Dispatcher 对于 GUI 应用程序等非常重要。
-
WindowsBase(Dispatcher)所在的位置,不能在 .NET Core 上运行,只能在普通 CLR 上运行。 -
听起来不像是 .NET Framework 与 .NET Core 的问题,而是 GUI 与控制台应用程序与 Web 服务的问题。 Web 服务没有长期存在的线程,它们是请求驱动的。无论您在 .NET Core 上构建何种项目类型,即使您使用完整的 .NET Framework 构建它,也无法访问
Dispatcher。 -
由于需要一段时间来解释的原因,我有必须从单个线程管理的本机对象。我还有来自其他来源的事件处理程序,需要在创建本机对象的
Dispatcher或Thread上引发。TaskScheduler.Default使用线程池。如果我可以引用WindowsBase,这可以完成,但我不能。这是一个长期运行的控制台服务。