public void TestInline() { RingBuffer <int> ringBuffer = new Common.RingBuffer.RingBuffer <int>(bufferSize, () => index++, waitTime); var factory = new TaskFactory(); List <Task> tasks = new List <Task>(); for (int i = 0; i < runCount; i++) { using var accquisiton = ringBuffer.Accquire(); System.Threading.Thread.Sleep(workTime); } }
public void TestMultiTasks() { RingBuffer <int> ringBuffer = new Common.RingBuffer.RingBuffer <int>(bufferSize, () => index++, waitTime); var factory = new TaskFactory(); List <Task> tasks = new List <Task>(); for (int i = 0; i < runCount; i++) { var task = factory.StartNew(() => { using var accquisiton = ringBuffer.Accquire(); System.Threading.Thread.Sleep(workTime); //System.Diagnostics.Debug.WriteLine($"Item {x.Current} - processado!"); }); tasks.Add(task); } Task.WhenAll(tasks.ToArray()).GetAwaiter().GetResult(); }
public void TestMultiThreadTest() { RingBuffer <int> ringBuffer = new Common.RingBuffer.RingBuffer <int>(bufferSize, () => index++, waitTime); List <Thread> threads = new List <Thread>(); for (int i = 0; i < runCount; i++) { Thread thread = new Thread(() => { using var bufferedItem = ringBuffer.Accquire(); System.Threading.Thread.Sleep(workTime); System.Diagnostics.Debug.WriteLine($"Item {bufferedItem.Current} - processado!"); }); thread.Start(); threads.Add(thread); } foreach (Thread thread in threads) { thread.Join(); } }