public static void MeasureMultipleCalls() { var traceContext = new TraceContext(); var testMethodRunner = new TestMethods(); testMethodRunner.Test1000(traceContext, 100); testMethodRunner.Test1000(traceContext, 200); testMethodRunner.Test1000(traceContext, 300); Console.WriteLine(traceContext.ToString()); }
public static void MeasureMultipleCallsInThreads(int threadsCount, int totalSeconds) { var traceContext = new TraceContext(); StartThreads(threadsCount, traceContext); Thread.Sleep(totalSeconds * 1000); StopThreads(traceContext); var summary = new TraceSummary(); Console.WriteLine(summary.PrintReport(traceContext)); }
private static void StartThreads(int threadsCount, TraceContext traceContext) { InProgress = true; Threads = new Thread[threadsCount]; for (var i = 0; i < threadsCount; i++) { var thread = new Thread(RunRandomMethods); thread.Start(traceContext); Threads[i] = thread; } }
private static void StopThreads(TraceContext traceContext) { InProgress = false; for (var i = 0; i < Threads.Length; i++) { Threads[i].Abort(); } TraceItem[] traceItems; lock (traceContext.TraceItemsList) { traceItems = traceContext.TraceItemsList.ToArray(); } foreach (var item in traceItems) { if (!item.IsStopped) { item.Cancel(); } } }