gpt4 book ai didi

c# - 如何正确覆盖自定义 SynchronizationContext 中的 Post 方法?

转载 作者:太空宇宙 更新时间:2023-11-03 15:25:18 25 4
gpt4 key购买 nike

<分区>

我一直在研究 SynchronizationContext,这些文章(Understanding SynchronizationContextExecutionContext vs SynchronizationContext)确实对我有所帮助,但是 - 当然 - 仍然存在许多问题。

我想实现我自己的 SynchronizationContext 类,它继承自基类,以便我可以在任何 Task 的上下文中使用它(对于自定义消息循环,节流、跟踪等);像这样:

public class SyncContext : System.Threading.SynchronizationContext
{

public SyncContext() : base()
{
}

public override void Send(Threading.SendOrPostCallback d, object state)
{
base.Send(d, state);
}

public override void Post(Threading.SendOrPostCallback d, object state)
{
base.Post(d, state);
}
}

虽然 base.Send 似乎做了预期的事情(同步执行回调),但 base.Post 似乎什么也没做。关于 Post 方法微软声明:

When overridden in a derived class, dispatches an asynchronous message to a synchronization context.

我想不能因为没有实现异步机制而责怪基类,但是调用 base.Post 时应该发生什么,或者正确/更好的实现看起来如何?我的一般方法是否已经产生误导?

感谢您的努力!

后续问题:实现自定义 TaskScheduler 可能是更好的方法 - 也许 TaskScheduler that uses a dedicated thread本质上是我需要的吗?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com