public static async Task RunMyJob(MyParameters myParameters) { DateTime Start = DateTime.Now; Thread.Sleep(myParameters.delayTime); Console.WriteLine("Job No: " + myParameters.JobNo + "\n DelayTime " + myParameters.delayTime + " StartTime: " + Start + " End Time: " + DateTime.Now); }
static void Main(string[] args) { IThreadJobQueue obj = new ThreadJobQueue(maxParallelizationCount: 4); //Test Job Queue //var t = new JobQueue(maxParallelizationCount: 1); Random rnd = new Random(); for (int i = 0; i <= 100; i++) { int Wait = rnd.Next(1, 10) * 1000; var parm = new MyParameters { delayTime = Wait, JobNo = i }; obj.Queue(futureTask: async() => { await RunMyJob(parm); }); } Console.WriteLine("Press Enter to Know Status"); do { Console.WriteLine("\nStatus::\nIsQueueRunning: " + obj.isQueueRunning() + " IsQueue: " + obj.GetQueueCount() + " Running Job:" + obj.GetRunningCount());//obj.GetQueueCount(); }while(Console.ReadLine() != "Exit"); }