private void btnExecute_Click(object sender, EventArgs e) { bool traceSelected = false; switch (cbxTraceClass.SelectedIndex) { case 0: //Trace class //Trace.Buffers = (int)nudBuffers.Value; //Trace.BufferSize = (int)nudBufferSize.Value; //Trace.Connect(txtConnectionString.Text, cBoxDatabase.Text, cBoxCollection.Text); traceSelected = false; break; case 1: //Concurrent trace class ConcurrentTrace.NumberOfBuffers = (int)nudBuffers.Value; ConcurrentTrace.BufferSize = (int)nudBufferSize.Value; ConcurrentTrace.Connect(cBoxDatabase.Text, cBoxCollection.Text); traceSelected = true; break; case 2: //Arbiter concurrent trace class ArbiterConcurrentTrace.NumberOfBuffers = (int)nudBuffers.Value; ArbiterConcurrentTrace.BufferSize = (int)nudBufferSize.Value; ArbiterConcurrentTrace.Connect(cBoxDatabase.Text, cBoxCollection.Text); traceSelected = true; break; default: MessageBox.Show("Error in executing the test"); traceSelected = false; break; } if (!traceSelected) { return; } List <Task> tasks = new List <Task>(); for (int i = 0; i < nudThreads.Value; i++) { tasks.Add(Task.Factory.StartNew(Print)); } }
private void Print() { List <string> stringhe = new List <string>() { "Ciao", "Come va?", "Tutto bene", "Random text", "Oh bè", "Non so", "Mmmmmh", "asdasd", "MongoDB", "Test", "boh boh" }; Random r = new Random(); int rand = r.Next(stringhe.Count); Log l = new Log(LogLevel.DEBUG, DateTime.Now, new Origin(Thread.CurrentThread.ManagedThreadId), stringhe[rand]); Stopwatch stopw = new Stopwatch(); stopw.Start(); ConcurrentTrace.Write(l); stopw.Stop(); console.AppendText($"{Task.CurrentId} -> {stopw.ElapsedMilliseconds}"); }