Beispiel #1
0
        private void RunSampleCode()
        {
            SetActiveSheet();

            int noOfRuns    = 50;
            int noOfThreads = 5;
            int noOfIteractionsPerThread = 10;

            System.Windows.Forms.MessageBox.Show("Starting MultiThreaded write job, writing " + noOfRuns + " cells.");
            _activeSheet.Cells[1, 1] = "MultiThread Write BatchID";
            _activeSheet.Cells[1, 2] = "MultiThread Write IndexID";
            _activeSheet.Cells[1, 3] = "MultiThread Write IndexCalculation";
            _activeSheet.Cells[1, 4] = "MultiThread Write Search State";
            _activeSheet.Cells[1, 5] = "MultiThread Write BatchTime (Start/End)";

            _activeSheet.Cells[1, 6]  = "SingleThread Read BatchID";
            _activeSheet.Cells[1, 7]  = "SingleThread Read IndexID";
            _activeSheet.Cells[1, 8]  = "SingleThread Write IndexCalculation";
            _activeSheet.Cells[1, 9]  = "SingleThread Read Search State";
            _activeSheet.Cells[1, 10] = "SingleThread Read BatchTime (Start/End)";
            MultiThreadWriteJob(noOfRuns, noOfThreads, noOfIteractionsPerThread);
            long jobExecCount = 0;

            while (jobExecCount < noOfRuns)
            {
                if (_mut.WaitOne())
                {
                    // System.Windows.Forms.MessageBox.Show("Read job, jobExecCount:" + jobExecCount.ToString());
                    jobExecCount = ThreadData.GetJobExecWaitCount();
                    _mut.ReleaseMutex();
                }
            }
            if (_mut.WaitOne())
            {
                System.Windows.Forms.MessageBox.Show("Starting SingleThreaded read job, reading " + noOfRuns + " cells.");
                _mut.ReleaseMutex();
            }
            //reset and start read job
            jobExecCount = 0;
            ThreadData.ResetJobExecWaitCount();
            SingleThreadWriteJob(noOfRuns, noOfThreads, noOfIteractionsPerThread);
            _activeSheet.Cells[noOfRuns + 2, 5] = "=MIN(E2:E" + (noOfRuns + 1).ToString() + ")";
            _activeSheet.Cells[noOfRuns + 3, 5] = "=MAX(E2:E" + (noOfRuns + 1).ToString() + ")";
            _activeSheet.Cells[noOfRuns + 4, 4] = "Run Time in milliseconds:";
            _activeSheet.Range[_activeSheet.Cells[noOfRuns + 4, 4], _activeSheet.Cells[noOfRuns + 4, 4]].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignRight;
            _activeSheet.Cells[noOfRuns + 4, 5] = "=(E" + (noOfRuns + 3).ToString() + "-E" + (noOfRuns + 2).ToString() + ")*24*60*60*1000";
            _activeSheet.Cells[noOfRuns + 5, 4] = "Run Time in seconds:";
            _activeSheet.Range[_activeSheet.Cells[noOfRuns + 5, 4], _activeSheet.Cells[noOfRuns + 5, 4]].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignRight;
            _activeSheet.Cells[noOfRuns + 5, 5] = "=(E" + (noOfRuns + 3).ToString() + "-E" + (noOfRuns + 2).ToString() + ")*24*60*60";

            _activeSheet.Cells[noOfRuns + 2, 10] = "=MIN(J2:J" + (noOfRuns + 1).ToString() + ")";
            _activeSheet.Cells[noOfRuns + 3, 10] = "=MAX(J2:J" + (noOfRuns + 1).ToString() + ")";
            _activeSheet.Cells[noOfRuns + 4, 9]  = "Run Time in milliseconds:";
            _activeSheet.Range[_activeSheet.Cells[noOfRuns + 4, 9], _activeSheet.Cells[noOfRuns + 4, 9]].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignRight;
            _activeSheet.Cells[noOfRuns + 4, 10] = "=(J" + (noOfRuns + 3).ToString() + "-J" + (noOfRuns + 2).ToString() + ")*24*60*60*1000";
            _activeSheet.Cells[noOfRuns + 5, 9]  = "Run Time in seconds:";
            _activeSheet.Range[_activeSheet.Cells[noOfRuns + 5, 9], _activeSheet.Cells[noOfRuns + 5, 9]].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignRight;
            _activeSheet.Cells[noOfRuns + 5, 10] = "=(J" + (noOfRuns + 3).ToString() + "-J" + (noOfRuns + 2).ToString() + ")*24*60*60";

            _activeSheet.Cells.Columns.AutoFit();
            _activeSheet.Cells.Rows.AutoFit();
            _activeSheet.Range[_activeSheet.Cells[1, 1], _activeSheet.Cells[1, 10]].EntireRow.Font.Bold = true;
            System.Windows.Forms.MessageBox.Show("All jobs completed.");
        }