Example #1
0
    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);
    }
Example #2
0
        public async Task InvokeSyncLoopValidTimeExecutionToSyncInteration(int loopCounter)
        {
            // Act
            await ParallelInvoke.InvokeSyncLoop(loopCounter);

            // Assert
        }
Example #3
0
        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();
             *
             * }
             */
        }
Example #4
0
        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
");
    }