40 lines
1.1 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|