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(); } } }