TokenBucket/QueueTokenBucketTest/Program.cs
2019-04-25 17:03:09 +08:00

40 lines
1.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TokenBucketLib;
using System.Threading;
namespace QueueTokenBucketTest
{
class Program
{
static void Main(string[] args)
{
var qtb = new QueueTokenBucket()
{
//QueueMaxLenth = 20,
IR = 5,
BS = 10,
};
qtb.SetFullPass();
qtb.GetTokenEnd += (sender, e) =>
{
Console.WriteLine("at {2}:{3} {0} S:{1}", e.Pass.Requester, e.Pass.State.ToString(), DateTime.Now.Minute, DateTime.Now.Second);
};
qtb.Start();
for (int i = 0; i < 40; i++)
{
Console.WriteLine("at {1}:{2} Request{0} ", i, DateTime.Now.Minute, DateTime.Now.Second);
qtb.GetTokenAsyn(i);
//Thread.Sleep(500);
}
Console.ReadKey();
qtb.Dispose();
}
}
}