public static void Main(string[] args) { Console.WriteLine("Warm-up call"); TestDelegate test = A; test += A; test += A; test += A; test += A; test += A; test += A; test += A; test += A; test += A; // 10 times in the invocation list ParallelInvoke.Invoke(test, "string"); // warm-up Stopwatch sw = new Stopwatch(); GC.Collect(); GC.WaitForPendingFinalizers(); Console.WriteLine("Profiling calls"); sw.Start(); for (int i = 0; i < 100000; i++) { // ParallelInvoke.Invoke(test, "string"); // profiling ParallelInvoke Invoke(test, "string"); // profiling native BeginInvoke/EndInvoke } sw.Stop(); Console.WriteLine("Done in {0} ms", sw.ElapsedMilliseconds); Console.ReadKey(true); }
public async Task InvokeSyncLoopValidTimeExecutionToSyncInteration(int loopCounter) { // Act await ParallelInvoke.InvokeSyncLoop(loopCounter); // Assert }
static void Main(string[] args) { int count = Environment.ProcessorCount; var builder = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json"); Configuration = builder.Build(); // Console.WriteLine($"option1 = {Configuration["ConnectionString"]}"); string conn = Configuration["ConnectionString"]; string queryString = Configuration["QueryString"]; // string querystring = "create table #myids (id int)"; ParallelInvoke parallelinvoke = new ParallelInvoke(queryString, conn, 0, 10, 20); parallelinvoke.executequery(); /* * using (SqlConnection connection = new SqlConnection(Configuration["ConnectionString"])) * { * SqlCommand cmd = new SqlCommand(querystring, connection); * connection.Open(); * // Do work here; connection closed on following line. * cmd.ExecuteNonQuery(); * * } */ }
public async Task InvokeListTasksValidTimeExecutionToParallelInteration(int loopCounter) { // Act await ParallelInvoke.InvokeListTasks(loopCounter); // Assert }
public static void Explain(this ParallelInvoke runnable, TextWriter writer) { writer.WriteLine(@" - `CpuBound.Compute` contains a quick sort algorithm - `Parallel.Invoke` is here to divide and conquer compute bound problems faster by applying parallelism - Operations are scheduled on the worker thread pool - Multiple arrays of length 5 to 10 will be sorted in parallel - Parallel.Invoke is a blocking operation "); }