如何使用 SemaphoreSlim 或 Dataflow 来处理通知限制?

How to I use SemaphoreSlim or Dataflow to handle notification throttling?

我有一种情况,当信息更新时,我们的应用程序会收到通知。当我们收到通知时,我们将在 WPF 应用程序中以异步方式获取最新的更改。我喜欢做的是,当大量的通知到来时,它会堆积起来并被节流。

所以如果有10个通知发送到客户端,系统会等待5秒,然后调用异步方法刷新。每 5 秒,它会请求最新的更改 1,而不是请求 10 次更改。

谁能举例说明 最好的处理方法?

您可以使用 DispatcherTimer 5 秒 Interval。每当您收到通知时启动计时器,前提是它尚未启动。在 Tick 事件处理程序中停止计时器并刷新显示的数据。