跟踪每个时间段的事件数量

时间:2009-11-24 20:34:52

标签: c# asp.net-2.0 timer

最好的方法是什么,在C#中跟踪每个时间段的事件数量?

例如,我想在设置标志之前将TCP应用程序限制为每分钟最多10个请求。 TCP应用程序旨在尽可能高效,并作为Windows服务运行。

明天,当我的大脑不那么疲倦时,也许我应该继续努力......

谢谢!

4 个答案:

答案 0 :(得分:2)

有一个类似的问题here

该问题的语言是Python,但应该很容易看到如何将接受的答案(用类似Python的伪代码编写)转换为C#。

答案 1 :(得分:0)

查看TimeSpan对象 - 在处理每个事件时跟踪DateTime,并使用TimeSpan比较差异。如果事件数量超过10且TimeSpan仍然低于60秒,您将知道设置标志。

答案 2 :(得分:0)

您无法真正限制TCP“事件”的数量,但您可以限制发送的数据量(只需通过休眠返回数据的线程)。

通过这种方式,您可以限制每个TCP连接使用的数据量(例如,最大为1k /秒)。

答案 3 :(得分:0)

将时间戳记放入队列中。只要队列已满,就不要让事件发生。当DateTime.Now - timeSpan> next_item_in_queue.TimeStamp,从队列中删除该项目。