【问题标题】:Could SynchronizationContext be used not in WinForms/WPF application?SynchronizationContext 可以不在 WinForms/WPF 应用程序中使用吗?
【发布时间】:2010-07-30 08:48:35
【问题描述】:

我正在编写一个可用于 WinForms 或 WPF 应用程序的组件,也可用于 Windows 服务或单元测试。有没有办法在非 UI 应用中使用 SynchronizationContext 组件?

【问题讨论】:

    标签: c# .net multithreading synchronization ynchronizationontext


    【解决方案1】:

    任何(主机)应用程序都可以创建自己的SynchronizationContext 类并调用SynchronizationContext.SetSynchronizationContext

    或者,您可以在库中创建一个无操作 SynchronizationContext,然后在 SynchronizationContext.Currentnull 时使用它。

    question 谈论编写自定义 SynchronizationContext。

    【讨论】:

    • 关于“应用程序如何创建自己的 SynchronizationContext”,即没有 UI 循环的应用程序,如 Windows 服务。
    • 如果您需要在单个线程上执行回调,您需要创建一个挂起回调的线程安全队列,并在回调线程上创建一个无限循环,以执行队列中的第一个回调.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-24
    相关资源
    最近更新 更多