public void AddRandomly(LimitedQueue <int> myQ, CancellationTokenSource cancel, ref string addMsg) { int addingNo = 0; Random r = new Random(); while (!cancel.IsCancellationRequested) { int element = r.Next() % 10; myQ.Enque(element); addingNo++; addMsg = $"the last adding was of {element} to {myQ}\n it was adding no' {addingNo}"; Thread.Sleep(r.Next() % 1000); } }
static void Main(string[] args) { LimitedQueue <int> queue = new LimitedQueue <int>(30); for (int i = 0; i < 40; i++) { var threadNumber = i; ThreadPool.QueueUserWorkItem(t => { Console.WriteLine($"Enque thread: {threadNumber}"); queue.Enque(threadNumber); Thread.Sleep(500); Console.WriteLine($"Deque thread: {queue.Deque()}"); }); } }
static void Main(string[] args) { LimitedQueue<int> queue = new LimitedQueue<int>(5); for (int i = 0; i < 20; i++) { int action = new Random().Next(0, 2); if (action == 0) { var trd = new Thread((j) => { try { Console.WriteLine($"{j}: Dequeued {queue.Dequeue()}"); Console.WriteLine($"{j}: {queue.Count()} "); } catch (InvalidOperationException ex) { Console.WriteLine($"{j}: queue is empty"); } } ); trd.Name = i.ToString(); trd.Start(i); } else { int value = new Random().Next(0, 200); var trd = new Thread((j) => { Console.WriteLine($"{j}: Try to enqueue {value}"); queue.Enque(value); Console.WriteLine($"{j}: Enqueued {value}"); Console.WriteLine($"{j}: {queue.Count()} "); }); trd.Name = i.ToString(); trd.Start(i); } } Console.ReadLine(); }
public void TestingCode() { LimitedQueue <int> queue = new LimitedQueue <int>(10); for (int i = 1; i <= 20; i++) { var number = i; Task.Run(async() => { queue.Enque(number); Console.WriteLine($"Added to queue: {number} ."); await Task.Delay(2000); var dequeNumber = queue.Deque(); Console.WriteLine($"Removed from queue: {dequeNumber} ."); }); } }
static void Main(string[] args) { LimitedQueue <int> queue = new LimitedQueue <int>(2); for (int i = 0; i < 10; i++) { var tI = i; ThreadPool.QueueUserWorkItem(s => { Console.WriteLine($"Enque: {tI}"); queue.Enque(tI); Thread.Sleep(1000); Console.WriteLine($"Deque: {queue.Deque()}"); }); } Console.ReadKey(); }
static void Main(string[] args) { LimitedQueue <int> limitedQueue = new LimitedQueue <int>(10); Random random = new Random(); int currentRandNum; for (int i = 0; i < 10; i++) { currentRandNum = random.Next(1, 50); Console.WriteLine("Adding item"); ThreadPool.QueueUserWorkItem(q => limitedQueue.Enque(currentRandNum)); Thread.Sleep(500); } for (int i = 0; i < 10; i++) { Console.WriteLine("Removing item"); ThreadPool.QueueUserWorkItem(q => limitedQueue.Deque()); Thread.Sleep(500); } }
public static void Main(string[] args) { LimitedQueue <int> testingQueue = new LimitedQueue <int>(5); for (int i = 0; i <= 21; i++) { Console.WriteLine($"Queue size is {testingQueue.Count}"); Random rand = new Random(); int currRand = rand.Next(1, 101); if (currRand % 3 != 0) { Console.WriteLine("Start adding process"); ThreadPool.QueueUserWorkItem(q => testingQueue.Enque(i)); } else { Console.WriteLine("Start removing process"); ThreadPool.QueueUserWorkItem(q => testingQueue.Deque()); } Thread.Sleep(1000); } }
static void Main(string[] args) { int maxSize = 10; LimitedQueue <int> queue = new LimitedQueue <int>(maxSize); for (int i = 0; i < 10; i++) { ThreadPool.QueueUserWorkItem((_) => { Console.WriteLine($"thread:{Thread.GetDomainID()}"); Random r = new Random(); for (int j = 0; j < 100; j++) { if (r.Next(4) > 1) { queue.Enque(r.Next(10)); Console.WriteLine("Enque"); //write operation } else { queue.Deque(); Console.WriteLine("Deque"); //write operation } Thread.Sleep(r.Next(200)); Console.WriteLine(queue.ToString()); //read operation if (queue.Count > maxSize) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"ERROR!"); } Console.WriteLine($"count:{queue.Count}"); ; } }); } Console.Read(); }
public void AddToQueue(string id) { newLimitedQueue.Enque(id); Console.WriteLine("{0} item entered the queue", id); }