我一直认为我可以使用 SynchronizationContext 来编组对另一个线程的调用。显然我错了,因为 SyncCtx.Send() 除了调用给定的委托(保持在同一个线程上)之外什么都不做。我真的需要从 SynchronizationContext 派生并在线程上下文上工作吗?我感觉好像错过了什么。
我想要实现的目标:想象一个用于在应用程序中执行命令的小 API。您还可以在后台线程上执行命令,因为您可以分配一个委托以在命令完成执行时运行。这个“Call-me-when-done”-Delegate 获得一个包含成功/失败标志、可选异常信息等的单个参数(状态)。我想在原始调用线程上调用这个委托,这样使用 lib 的开发人员就不会需要处理所需的调用等。我只想把它拿走,让他们做简单的非线程感知编程。如果您不给它一些控制作为目标,WindowsFormsSynchronizationContext 似乎也无济于事。
谢谢你的帮助!