Click here to Skip to main content
15,885,890 members
Articles / General Programming / Threads

Smart Thread Pool

Rate me:
Please Sign up or sign in to vote.
4.96/5 (314 votes)
27 Aug 2012Ms-PL40 min read 2.2M   29.1K   1.1K  
A .NET Thread Pool fully implemented in C# with many features.
namespace WorkItemsGroupDemo
{
    partial class Form1
    {
        /// <summary>
        /// Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;

        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }

        #region Windows Form Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.components = new System.ComponentModel.Container();
            this.btnStart = new System.Windows.Forms.Button();
            this.timer1 = new System.Windows.Forms.Timer(this.components);
            this.btnPause = new System.Windows.Forms.Button();
            this.toolTip1 = new System.Windows.Forms.ToolTip(this.components);
            this.btnCancel1 = new System.Windows.Forms.Button();
            this.btnCancel2 = new System.Windows.Forms.Button();
            this.btnCancel3 = new System.Windows.Forms.Button();
            this.spinCon6 = new System.Windows.Forms.NumericUpDown();
            this.spinCon1 = new System.Windows.Forms.NumericUpDown();
            this.spinCon3 = new System.Windows.Forms.NumericUpDown();
            this.spinCon2 = new System.Windows.Forms.NumericUpDown();
            this.spinProduction6 = new System.Windows.Forms.NumericUpDown();
            this.spinDuration6 = new System.Windows.Forms.NumericUpDown();
            this.btnCancel6 = new System.Windows.Forms.Button();
            this.spinDuration1 = new System.Windows.Forms.NumericUpDown();
            this.spinProduction1 = new System.Windows.Forms.NumericUpDown();
            this.spinDuration2 = new System.Windows.Forms.NumericUpDown();
            this.spinProduction2 = new System.Windows.Forms.NumericUpDown();
            this.spinDuration3 = new System.Windows.Forms.NumericUpDown();
            this.spinProduction3 = new System.Windows.Forms.NumericUpDown();
            this.spinIdleTimeout = new System.Windows.Forms.NumericUpDown();
            this.lblStatus1 = new System.Windows.Forms.Label();
            this.lblStatus2 = new System.Windows.Forms.Label();
            this.lblStatus3 = new System.Windows.Forms.Label();
            this.lblStatus6 = new System.Windows.Forms.Label();
            this.lblWaitingCallbacks = new System.Windows.Forms.Label();
            this.lblWorkItemsGenerated = new System.Windows.Forms.Label();
            this.lblWorkItemsCompleted = new System.Windows.Forms.Label();
            this.lblThreadInUse = new System.Windows.Forms.Label();
            this.lblThreadsInPool = new System.Windows.Forms.Label();
            this.comboWIPriority6 = new System.Windows.Forms.ComboBox();
            this.comboWIPriority1 = new System.Windows.Forms.ComboBox();
            this.comboWIPriority2 = new System.Windows.Forms.ComboBox();
            this.comboWIPriority3 = new System.Windows.Forms.ComboBox();
            this.btnMode = new System.Windows.Forms.Button();
            this.queueUsageControl6 = new UsageControl.QueueUsageControl();
            this.queueUsageControl2 = new UsageControl.QueueUsageControl();
            this.queueUsageControl1 = new UsageControl.QueueUsageControl();
            this.queueUsageControl3 = new UsageControl.QueueUsageControl();
            this.usageHistorySTP = new UsageControl.UsageHistoryControl();
            this.groupBox4 = new System.Windows.Forms.GroupBox();
            this.groupBox1 = new System.Windows.Forms.GroupBox();
            this.usageThreadsInPool = new UsageControl.UsageControl();
            this.groupBox2 = new System.Windows.Forms.GroupBox();
            this.label6 = new System.Windows.Forms.Label();
            this.label7 = new System.Windows.Forms.Label();
            this.label11 = new System.Windows.Forms.Label();
            this.groupBox3 = new System.Windows.Forms.GroupBox();
            this.label12 = new System.Windows.Forms.Label();
            this.label15 = new System.Windows.Forms.Label();
            this.groupWIGQueues = new System.Windows.Forms.GroupBox();
            this.label13 = new System.Windows.Forms.Label();
            this.label16 = new System.Windows.Forms.Label();
            this.label17 = new System.Windows.Forms.Label();
            this.groupBox7 = new System.Windows.Forms.GroupBox();
            this.label3 = new System.Windows.Forms.Label();
            this.label4 = new System.Windows.Forms.Label();
            this.label5 = new System.Windows.Forms.Label();
            this.label8 = new System.Windows.Forms.Label();
            this.label1 = new System.Windows.Forms.Label();
            this.label2 = new System.Windows.Forms.Label();
            this.label9 = new System.Windows.Forms.Label();
            this.label10 = new System.Windows.Forms.Label();
            this.label14 = new System.Windows.Forms.Label();
            this.label18 = new System.Windows.Forms.Label();
            this.label19 = new System.Windows.Forms.Label();
            this.timer2 = new System.Windows.Forms.Timer(this.components);
            this.panelWIGsCtrls = new System.Windows.Forms.Panel();
            this.timerPoll = new System.Windows.Forms.Timer(this.components);
            this.panel1 = new System.Windows.Forms.Panel();
            this.panel2 = new System.Windows.Forms.Panel();
            this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
            ((System.ComponentModel.ISupportInitialize)(this.spinCon6)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.spinCon1)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.spinCon3)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.spinCon2)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.spinProduction6)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.spinDuration6)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.spinDuration1)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.spinProduction1)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.spinDuration2)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.spinProduction2)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.spinDuration3)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.spinProduction3)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.spinIdleTimeout)).BeginInit();
            this.groupBox4.SuspendLayout();
            this.groupBox1.SuspendLayout();
            this.groupBox2.SuspendLayout();
            this.groupBox3.SuspendLayout();
            this.groupWIGQueues.SuspendLayout();
            this.groupBox7.SuspendLayout();
            this.panelWIGsCtrls.SuspendLayout();
            this.panel1.SuspendLayout();
            this.panel2.SuspendLayout();
            this.tableLayoutPanel1.SuspendLayout();
            this.SuspendLayout();
            // 
            // btnStart
            // 
            this.btnStart.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(177)));
            this.btnStart.Location = new System.Drawing.Point(6, 12);
            this.btnStart.Name = "btnStart";
            this.btnStart.Size = new System.Drawing.Size(80, 23);
            this.btnStart.TabIndex = 0;
            this.btnStart.Text = "Start STP";
            this.toolTip1.SetToolTip(this.btnStart, "Start/Stop the Smart Thread Pool");
            this.btnStart.UseVisualStyleBackColor = true;
            this.btnStart.Click += new System.EventHandler(this.btnStart_Click);
            // 
            // timer1
            // 
            this.timer1.Enabled = true;
            this.timer1.Interval = 500;
            this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
            // 
            // btnPause
            // 
            this.btnPause.AutoSize = true;
            this.btnPause.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(177)));
            this.btnPause.Location = new System.Drawing.Point(8, 47);
            this.btnPause.Margin = new System.Windows.Forms.Padding(2);
            this.btnPause.Name = "btnPause";
            this.btnPause.Size = new System.Drawing.Size(80, 23);
            this.btnPause.TabIndex = 1;
            this.btnPause.Text = "Pause STP";
            this.toolTip1.SetToolTip(this.btnPause, "Pause/Resume the Smart Thread Pool");
            this.btnPause.UseVisualStyleBackColor = true;
            this.btnPause.Click += new System.EventHandler(this.btnPause_Click);
            // 
            // btnCancel1
            // 
            this.btnCancel1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(177)));
            this.btnCancel1.Location = new System.Drawing.Point(175, 5);
            this.btnCancel1.Name = "btnCancel1";
            this.btnCancel1.Size = new System.Drawing.Size(20, 23);
            this.btnCancel1.TabIndex = 6;
            this.toolTip1.SetToolTip(this.btnCancel1, "Cancel all work items of Work Items Group #1");
            this.btnCancel1.UseVisualStyleBackColor = true;
            this.btnCancel1.Click += new System.EventHandler(this.btnCancel1_Click);
            // 
            // btnCancel2
            // 
            this.btnCancel2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(177)));
            this.btnCancel2.Location = new System.Drawing.Point(175, 38);
            this.btnCancel2.Name = "btnCancel2";
            this.btnCancel2.Size = new System.Drawing.Size(20, 23);
            this.btnCancel2.TabIndex = 7;
            this.toolTip1.SetToolTip(this.btnCancel2, "Cancel all work items of Work Items Group #2");
            this.btnCancel2.UseVisualStyleBackColor = true;
            this.btnCancel2.Click += new System.EventHandler(this.btnCancel2_Click);
            // 
            // btnCancel3
            // 
            this.btnCancel3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(177)));
            this.btnCancel3.Location = new System.Drawing.Point(175, 71);
            this.btnCancel3.Name = "btnCancel3";
            this.btnCancel3.Size = new System.Drawing.Size(20, 23);
            this.btnCancel3.TabIndex = 8;
            this.toolTip1.SetToolTip(this.btnCancel3, "Cancel all work items of Work Items Group #3");
            this.btnCancel3.UseVisualStyleBackColor = true;
            this.btnCancel3.Click += new System.EventHandler(this.btnCancel3_Click);
            // 
            // spinCon6
            // 
            this.spinCon6.Location = new System.Drawing.Point(83, 32);
            this.spinCon6.Maximum = new decimal(new int[] {
            20,
            0,
            0,
            0});
            this.spinCon6.Minimum = new decimal(new int[] {
            1,
            0,
            0,
            0});
            this.spinCon6.Name = "spinCon6";
            this.spinCon6.Size = new System.Drawing.Size(42, 20);
            this.spinCon6.TabIndex = 1;
            this.toolTip1.SetToolTip(this.spinCon6, "Change the concurrency of the Smart Thread Pool (Max working threads)");
            this.spinCon6.Value = new decimal(new int[] {
            5,
            0,
            0,
            0});
            this.spinCon6.ValueChanged += new System.EventHandler(this.spinCon_ValueChanged);
            // 
            // spinCon1
            // 
            this.spinCon1.Location = new System.Drawing.Point(83, 6);
            this.spinCon1.Maximum = new decimal(new int[] {
            10,
            0,
            0,
            0});
            this.spinCon1.Minimum = new decimal(new int[] {
            1,
            0,
            0,
            0});
            this.spinCon1.Name = "spinCon1";
            this.spinCon1.Size = new System.Drawing.Size(42, 20);
            this.spinCon1.TabIndex = 3;
            this.toolTip1.SetToolTip(this.spinCon1, "Change the concurrency of Work Items Group #1");
            this.spinCon1.Value = new decimal(new int[] {
            1,
            0,
            0,
            0});
            this.spinCon1.ValueChanged += new System.EventHandler(this.spinCon_ValueChanged);
            // 
            // spinCon3
            // 
            this.spinCon3.Location = new System.Drawing.Point(83, 72);
            this.spinCon3.Maximum = new decimal(new int[] {
            10,
            0,
            0,
            0});
            this.spinCon3.Minimum = new decimal(new int[] {
            1,
            0,
            0,
            0});
            this.spinCon3.Name = "spinCon3";
            this.spinCon3.Size = new System.Drawing.Size(42, 20);
            this.spinCon3.TabIndex = 5;
            this.toolTip1.SetToolTip(this.spinCon3, "Change the concurrency of Work Items Group #3");
            this.spinCon3.Value = new decimal(new int[] {
            1,
            0,
            0,
            0});
            this.spinCon3.ValueChanged += new System.EventHandler(this.spinCon_ValueChanged);
            // 
            // spinCon2
            // 
            this.spinCon2.Location = new System.Drawing.Point(83, 39);
            this.spinCon2.Maximum = new decimal(new int[] {
            10,
            0,
            0,
            0});
            this.spinCon2.Minimum = new decimal(new int[] {
            1,
            0,
            0,
            0});
            this.spinCon2.Name = "spinCon2";
            this.spinCon2.Size = new System.Drawing.Size(42, 20);
            this.spinCon2.TabIndex = 4;
            this.toolTip1.SetToolTip(this.spinCon2, "Change the concurrency of Work Items Group #2");
            this.spinCon2.Value = new decimal(new int[] {
            1,
            0,
            0,
            0});
            this.spinCon2.ValueChanged += new System.EventHandler(this.spinCon_ValueChanged);
            // 
            // spinProduction6
            // 
            this.spinProduction6.Location = new System.Drawing.Point(405, 31);
            this.spinProduction6.Maximum = new decimal(new int[] {
            50,
            0,
            0,
            0});
            this.spinProduction6.Name = "spinProduction6";
            this.spinProduction6.Size = new System.Drawing.Size(56, 20);
            this.spinProduction6.TabIndex = 4;
            this.toolTip1.SetToolTip(this.spinProduction6, "The number of work items to produce and queue per second into  the Smart Thread P" +
                    "ool");
            // 
            // spinDuration6
            // 
            this.spinDuration6.Increment = new decimal(new int[] {
            50,
            0,
            0,
            0});
            this.spinDuration6.Location = new System.Drawing.Point(522, 31);
            this.spinDuration6.Maximum = new decimal(new int[] {
            2000,
            0,
            0,
            0});
            this.spinDuration6.Name = "spinDuration6";
            this.spinDuration6.Size = new System.Drawing.Size(56, 20);
            this.spinDuration6.TabIndex = 5;
            this.toolTip1.SetToolTip(this.spinDuration6, "The duration of each work item queue into the Smart Thread Pool");
            this.spinDuration6.Value = new decimal(new int[] {
            1000,
            0,
            0,
            0});
            // 
            // btnCancel6
            // 
            this.btnCancel6.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(177)));
            this.btnCancel6.Location = new System.Drawing.Point(175, 29);
            this.btnCancel6.Name = "btnCancel6";
            this.btnCancel6.Size = new System.Drawing.Size(20, 23);
            this.btnCancel6.TabIndex = 2;
            this.toolTip1.SetToolTip(this.btnCancel6, "Cancel all work items of work items in Smart Thread Pool and its corrosponding Wo" +
                    "rk Items Groups.");
            this.btnCancel6.UseVisualStyleBackColor = true;
            this.btnCancel6.Click += new System.EventHandler(this.btnCancel6_Click);
            // 
            // spinDuration1
            // 
            this.spinDuration1.Increment = new decimal(new int[] {
            50,
            0,
            0,
            0});
            this.spinDuration1.Location = new System.Drawing.Point(522, 7);
            this.spinDuration1.Maximum = new decimal(new int[] {
            2000,
            0,
            0,
            0});
            this.spinDuration1.Name = "spinDuration1";
            this.spinDuration1.Size = new System.Drawing.Size(56, 20);
            this.spinDuration1.TabIndex = 15;
            this.toolTip1.SetToolTip(this.spinDuration1, "The duration of each work item queued into the Work Items Group #1");
            this.spinDuration1.Value = new decimal(new int[] {
            1000,
            0,
            0,
            0});
            // 
            // spinProduction1
            // 
            this.spinProduction1.Location = new System.Drawing.Point(405, 7);
            this.spinProduction1.Maximum = new decimal(new int[] {
            50,
            0,
            0,
            0});
            this.spinProduction1.Name = "spinProduction1";
            this.spinProduction1.Size = new System.Drawing.Size(56, 20);
            this.spinProduction1.TabIndex = 12;
            this.toolTip1.SetToolTip(this.spinProduction1, "The number of work items to produce and queue per second into Work Items Group #1" +
                    "");
            // 
            // spinDuration2
            // 
            this.spinDuration2.Increment = new decimal(new int[] {
            50,
            0,
            0,
            0});
            this.spinDuration2.Location = new System.Drawing.Point(522, 40);
            this.spinDuration2.Maximum = new decimal(new int[] {
            2000,
            0,
            0,
            0});
            this.spinDuration2.Name = "spinDuration2";
            this.spinDuration2.Size = new System.Drawing.Size(56, 20);
            this.spinDuration2.TabIndex = 16;
            this.toolTip1.SetToolTip(this.spinDuration2, "The duration of each work item queued into the Work Items Group #2");
            this.spinDuration2.Value = new decimal(new int[] {
            1000,
            0,
            0,
            0});
            // 
            // spinProduction2
            // 
            this.spinProduction2.Location = new System.Drawing.Point(405, 40);
            this.spinProduction2.Maximum = new decimal(new int[] {
            50,
            0,
            0,
            0});
            this.spinProduction2.Name = "spinProduction2";
            this.spinProduction2.Size = new System.Drawing.Size(56, 20);
            this.spinProduction2.TabIndex = 13;
            this.toolTip1.SetToolTip(this.spinProduction2, "The number of work items to produce and queue per second into Work Items Group #2" +
                    "");
            // 
            // spinDuration3
            // 
            this.spinDuration3.Increment = new decimal(new int[] {
            50,
            0,
            0,
            0});
            this.spinDuration3.Location = new System.Drawing.Point(522, 73);
            this.spinDuration3.Maximum = new decimal(new int[] {
            2000,
            0,
            0,
            0});
            this.spinDuration3.Name = "spinDuration3";
            this.spinDuration3.Size = new System.Drawing.Size(56, 20);
            this.spinDuration3.TabIndex = 17;
            this.toolTip1.SetToolTip(this.spinDuration3, "The duration of each work item queued into the Work Items Group #3");
            this.spinDuration3.Value = new decimal(new int[] {
            1000,
            0,
            0,
            0});
            // 
            // spinProduction3
            // 
            this.spinProduction3.Location = new System.Drawing.Point(405, 73);
            this.spinProduction3.Maximum = new decimal(new int[] {
            50,
            0,
            0,
            0});
            this.spinProduction3.Name = "spinProduction3";
            this.spinProduction3.Size = new System.Drawing.Size(56, 20);
            this.spinProduction3.TabIndex = 14;
            this.toolTip1.SetToolTip(this.spinProduction3, "The number of work items to produce and queue per second into Work Items Group #3" +
                    "");
            // 
            // spinIdleTimeout
            // 
            this.spinIdleTimeout.Location = new System.Drawing.Point(101, 123);
            this.spinIdleTimeout.Maximum = new decimal(new int[] {
            25,
            0,
            0,
            0});
            this.spinIdleTimeout.Minimum = new decimal(new int[] {
            1,
            0,
            0,
            0});
            this.spinIdleTimeout.Name = "spinIdleTimeout";
            this.spinIdleTimeout.Size = new System.Drawing.Size(56, 20);
            this.spinIdleTimeout.TabIndex = 3;
            this.toolTip1.SetToolTip(this.spinIdleTimeout, "The idle timeout of the Smart Thread Pool in seconds.");
            this.spinIdleTimeout.Value = new decimal(new int[] {
            5,
            0,
            0,
            0});
            // 
            // lblStatus1
            // 
            this.lblStatus1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
            this.lblStatus1.Location = new System.Drawing.Point(17, 372);
            this.lblStatus1.Name = "lblStatus1";
            this.lblStatus1.Size = new System.Drawing.Size(72, 13);
            this.lblStatus1.TabIndex = 37;
            this.lblStatus1.Text = "Idle";
            this.lblStatus1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
            this.toolTip1.SetToolTip(this.lblStatus1, "The state of the Work Items Group #1");
            // 
            // lblStatus2
            // 
            this.lblStatus2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
            this.lblStatus2.Location = new System.Drawing.Point(102, 372);
            this.lblStatus2.Name = "lblStatus2";
            this.lblStatus2.Size = new System.Drawing.Size(72, 13);
            this.lblStatus2.TabIndex = 38;
            this.lblStatus2.Text = "Idle";
            this.lblStatus2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
            this.toolTip1.SetToolTip(this.lblStatus2, "The state of the Work Items Group #2");
            // 
            // lblStatus3
            // 
            this.lblStatus3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
            this.lblStatus3.Location = new System.Drawing.Point(186, 371);
            this.lblStatus3.Name = "lblStatus3";
            this.lblStatus3.Size = new System.Drawing.Size(72, 13);
            this.lblStatus3.TabIndex = 39;
            this.lblStatus3.Text = "Idle";
            this.lblStatus3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
            this.toolTip1.SetToolTip(this.lblStatus3, "The state of the Work Items Group #3");
            // 
            // lblStatus6
            // 
            this.lblStatus6.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
                        | System.Windows.Forms.AnchorStyles.Right)));
            this.lblStatus6.Location = new System.Drawing.Point(39, 371);
            this.lblStatus6.Name = "lblStatus6";
            this.lblStatus6.Size = new System.Drawing.Size(72, 13);
            this.lblStatus6.TabIndex = 42;
            this.lblStatus6.Text = "Idle";
            this.lblStatus6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
            this.toolTip1.SetToolTip(this.lblStatus6, "The state of the Smart Thread Pool");
            // 
            // lblWaitingCallbacks
            // 
            this.lblWaitingCallbacks.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.lblWaitingCallbacks.Location = new System.Drawing.Point(80, 16);
            this.lblWaitingCallbacks.Name = "lblWaitingCallbacks";
            this.lblWaitingCallbacks.Size = new System.Drawing.Size(80, 24);
            this.lblWaitingCallbacks.TabIndex = 22;
            this.lblWaitingCallbacks.Text = "XXXXXXXXX";
            this.lblWaitingCallbacks.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
            this.toolTip1.SetToolTip(this.lblWaitingCallbacks, "The number of queued items in the Smart Thread Pool queue");
            // 
            // lblWorkItemsGenerated
            // 
            this.lblWorkItemsGenerated.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.lblWorkItemsGenerated.Location = new System.Drawing.Point(80, 40);
            this.lblWorkItemsGenerated.Name = "lblWorkItemsGenerated";
            this.lblWorkItemsGenerated.Size = new System.Drawing.Size(80, 24);
            this.lblWorkItemsGenerated.TabIndex = 27;
            this.lblWorkItemsGenerated.Text = "XXXXXXXXX";
            this.lblWorkItemsGenerated.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
            this.toolTip1.SetToolTip(this.lblWorkItemsGenerated, "The total number of generated work items (including Work Items Groups) that were " +
                    "generated since \'Start STP\' was pressed.");
            // 
            // lblWorkItemsCompleted
            // 
            this.lblWorkItemsCompleted.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.lblWorkItemsCompleted.Location = new System.Drawing.Point(80, 64);
            this.lblWorkItemsCompleted.Name = "lblWorkItemsCompleted";
            this.lblWorkItemsCompleted.Size = new System.Drawing.Size(80, 24);
            this.lblWorkItemsCompleted.TabIndex = 28;
            this.lblWorkItemsCompleted.Text = "XXXXXXXXX";
            this.lblWorkItemsCompleted.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
            this.toolTip1.SetToolTip(this.lblWorkItemsCompleted, "The total number of work items completed.");
            // 
            // lblThreadInUse
            // 
            this.lblThreadInUse.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.lblThreadInUse.Location = new System.Drawing.Point(80, 40);
            this.lblThreadInUse.Name = "lblThreadInUse";
            this.lblThreadInUse.Size = new System.Drawing.Size(80, 24);
            this.lblThreadInUse.TabIndex = 18;
            this.lblThreadInUse.Text = "XXXXXXXXX";
            this.lblThreadInUse.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
            this.toolTip1.SetToolTip(this.lblThreadInUse, "The number of busy threads in the Smart Thread Pool");
            // 
            // lblThreadsInPool
            // 
            this.lblThreadsInPool.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.lblThreadsInPool.Location = new System.Drawing.Point(80, 16);
            this.lblThreadsInPool.Name = "lblThreadsInPool";
            this.lblThreadsInPool.Size = new System.Drawing.Size(80, 24);
            this.lblThreadsInPool.TabIndex = 11;
            this.lblThreadsInPool.Text = "XXXXXXXXX";
            this.lblThreadsInPool.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
            this.toolTip1.SetToolTip(this.lblThreadsInPool, "The number of thread in the Smart Thread Pool (Busy and idle)");
            // 
            // comboWIPriority6
            // 
            this.comboWIPriority6.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.comboWIPriority6.FormattingEnabled = true;
            this.comboWIPriority6.Items.AddRange(new object[] {
            "Lowest (Lo)",
            "Normal (N)",
            "Highest (Hi)"});
            this.comboWIPriority6.Location = new System.Drawing.Point(236, 30);
            this.comboWIPriority6.MaxDropDownItems = 5;
            this.comboWIPriority6.Name = "comboWIPriority6";
            this.comboWIPriority6.Size = new System.Drawing.Size(111, 21);
            this.comboWIPriority6.TabIndex = 3;
            this.toolTip1.SetToolTip(this.comboWIPriority6, "The priority of work items generated to the Smart Thread Pool.");
            // 
            // comboWIPriority1
            // 
            this.comboWIPriority1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.comboWIPriority1.FormattingEnabled = true;
            this.comboWIPriority1.Items.AddRange(new object[] {
            "Lowest (Lo)",
            "Normal (N)",
            "Highest (Hi)"});
            this.comboWIPriority1.Location = new System.Drawing.Point(236, 6);
            this.comboWIPriority1.MaxDropDownItems = 5;
            this.comboWIPriority1.Name = "comboWIPriority1";
            this.comboWIPriority1.Size = new System.Drawing.Size(111, 21);
            this.comboWIPriority1.TabIndex = 9;
            this.toolTip1.SetToolTip(this.comboWIPriority1, "The priority of work items generated to Work Items Group #1");
            // 
            // comboWIPriority2
            // 
            this.comboWIPriority2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.comboWIPriority2.FormattingEnabled = true;
            this.comboWIPriority2.Items.AddRange(new object[] {
            "Lowest (Lo)",
            "Normal (N)",
            "Highest (Hi)"});
            this.comboWIPriority2.Location = new System.Drawing.Point(236, 39);
            this.comboWIPriority2.MaxDropDownItems = 5;
            this.comboWIPriority2.Name = "comboWIPriority2";
            this.comboWIPriority2.Size = new System.Drawing.Size(111, 21);
            this.comboWIPriority2.TabIndex = 10;
            this.toolTip1.SetToolTip(this.comboWIPriority2, "The priority of work items generated to Work Items Group #2");
            // 
            // comboWIPriority3
            // 
            this.comboWIPriority3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
            this.comboWIPriority3.FormattingEnabled = true;
            this.comboWIPriority3.Items.AddRange(new object[] {
            "Lowest (Lo)",
            "Normal (N)",
            "Highest (Hi)"});
            this.comboWIPriority3.Location = new System.Drawing.Point(236, 72);
            this.comboWIPriority3.MaxDropDownItems = 5;
            this.comboWIPriority3.Name = "comboWIPriority3";
            this.comboWIPriority3.Size = new System.Drawing.Size(111, 21);
            this.comboWIPriority3.TabIndex = 11;
            this.toolTip1.SetToolTip(this.comboWIPriority3, "The priority of work items generated to Work Items Group #3");
            // 
            // btnMode
            // 
            this.btnMode.AutoSize = true;
            this.btnMode.Location = new System.Drawing.Point(9, 84);
            this.btnMode.Name = "btnMode";
            this.btnMode.Size = new System.Drawing.Size(81, 23);
            this.btnMode.TabIndex = 2;
            this.btnMode.Text = "Advanced >>";
            this.toolTip1.SetToolTip(this.btnMode, "In advance mode the Work Items Group feature is enabled.");
            this.btnMode.UseVisualStyleBackColor = true;
            this.btnMode.Click += new System.EventHandler(this.btnMode_Click);
            // 
            // queueUsageControl6
            // 
            this.queueUsageControl6.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)));
            this.queueUsageControl6.BackColor = System.Drawing.Color.Transparent;
            this.queueUsageControl6.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.queueUsageControl6.Location = new System.Drawing.Point(39, 19);
            this.queueUsageControl6.Margin = new System.Windows.Forms.Padding(6);
            this.queueUsageControl6.Name = "queueUsageControl6";
            this.queueUsageControl6.Size = new System.Drawing.Size(72, 346);
            this.queueUsageControl6.TabIndex = 30;
            this.queueUsageControl6.TabStop = false;
            this.toolTip1.SetToolTip(this.queueUsageControl6, "Smart Thread Pool Queue.  The head of the queue is at the bottom. Executed work i" +
                    "tems are shown blinking.");
            // 
            // queueUsageControl2
            // 
            this.queueUsageControl2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                        | System.Windows.Forms.AnchorStyles.Left)));
            this.queueUsageControl2.BackColor = System.Drawing.Color.Transparent;
            this.queueUsageControl2.CausesValidation = false;
            this.queueUsageControl2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.queueUsageControl2.Location = new System.Drawing.Point(102, 44);
            this.queueUsageControl2.Margin = new System.Windows.Forms.Padding(6);
            this.queueUsageControl2.Name = "queueUsageControl2";
            this.queueUsageControl2.Size = new System.Drawing.Size(72, 321);
            this.queueUsageControl2.TabIndex = 26;
            this.toolTip1.SetToolTip(this.queueUsageControl2, "Work Items Group #2 Queue. Each Work Items Group has unique color for its work it" +
                    "ems.");
            // 
            // queueUsageControl1
            // 
            this.queueUsageControl1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                        | System.Windows.Forms.AnchorStyles.Left)));
            this.queueUsageControl1.BackColor = System.Drawing.Color.Transparent;
            this.queueUsageControl1.CausesValidation = false;
            this.queueUsageControl1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.queueUsageControl1.Location = new System.Drawing.Point(17, 44);
            this.queueUsageControl1.Margin = new System.Windows.Forms.Padding(6);
            this.queueUsageControl1.Name = "queueUsageControl1";
            this.queueUsageControl1.Size = new System.Drawing.Size(72, 321);
            this.queueUsageControl1.TabIndex = 25;
            this.toolTip1.SetToolTip(this.queueUsageControl1, "Work Items Group #1 Queue. Each Work Items Group has unique color for its work it" +
                    "ems.");
            // 
            // queueUsageControl3
            // 
            this.queueUsageControl3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                        | System.Windows.Forms.AnchorStyles.Left)));
            this.queueUsageControl3.BackColor = System.Drawing.Color.Transparent;
            this.queueUsageControl3.CausesValidation = false;
            this.queueUsageControl3.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.queueUsageControl3.Location = new System.Drawing.Point(186, 44);
            this.queueUsageControl3.Margin = new System.Windows.Forms.Padding(6);
            this.queueUsageControl3.Name = "queueUsageControl3";
            this.queueUsageControl3.Size = new System.Drawing.Size(72, 321);
            this.queueUsageControl3.TabIndex = 27;
            this.toolTip1.SetToolTip(this.queueUsageControl3, "Work Items Group #3 Queue. Each Work Items Group has unique color for its work it" +
                    "ems.");
            // 
            // usageHistorySTP
            // 
            this.usageHistorySTP.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                        | System.Windows.Forms.AnchorStyles.Left)
                        | System.Windows.Forms.AnchorStyles.Right)));
            this.usageHistorySTP.BackColor = System.Drawing.Color.Black;
            this.usageHistorySTP.Location = new System.Drawing.Point(8, 16);
            this.usageHistorySTP.Maximum = 100;
            this.usageHistorySTP.Name = "usageHistorySTP";
            this.usageHistorySTP.Size = new System.Drawing.Size(501, 104);
            this.usageHistorySTP.TabIndex = 0;
            this.toolTip1.SetToolTip(this.usageHistorySTP, "Smart Thread Pool usage. Green means used threads. Red means threads in pool.");
            // 
            // groupBox4
            // 
            this.groupBox4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
                        | System.Windows.Forms.AnchorStyles.Right)));
            this.groupBox4.Controls.Add(this.usageHistorySTP);
            this.groupBox4.Location = new System.Drawing.Point(102, 12);
            this.groupBox4.Name = "groupBox4";
            this.groupBox4.Size = new System.Drawing.Size(520, 128);
            this.groupBox4.TabIndex = 1;
            this.groupBox4.TabStop = false;
            this.groupBox4.Text = "STP Usage History";
            // 
            // groupBox1
            // 
            this.groupBox1.Controls.Add(this.usageThreadsInPool);
            this.groupBox1.Location = new System.Drawing.Point(6, 12);
            this.groupBox1.Name = "groupBox1";
            this.groupBox1.Size = new System.Drawing.Size(90, 128);
            this.groupBox1.TabIndex = 0;
            this.groupBox1.TabStop = false;
            this.groupBox1.Text = "STP Usage";
            // 
            // usageThreadsInPool
            // 
            this.usageThreadsInPool.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                        | System.Windows.Forms.AnchorStyles.Left)
                        | System.Windows.Forms.AnchorStyles.Right)));
            this.usageThreadsInPool.BackColor = System.Drawing.Color.Black;
            this.usageThreadsInPool.Location = new System.Drawing.Point(25, 16);
            this.usageThreadsInPool.Maximum = 20;
            this.usageThreadsInPool.Name = "usageThreadsInPool";
            this.usageThreadsInPool.Size = new System.Drawing.Size(41, 104);
            this.usageThreadsInPool.TabIndex = 0;
            this.usageThreadsInPool.Value1 = 0;
            this.usageThreadsInPool.Value2 = 0;
            // 
            // groupBox2
            // 
            this.groupBox2.Controls.Add(this.lblWaitingCallbacks);
            this.groupBox2.Controls.Add(this.label6);
            this.groupBox2.Controls.Add(this.label7);
            this.groupBox2.Controls.Add(this.label11);
            this.groupBox2.Controls.Add(this.lblWorkItemsGenerated);
            this.groupBox2.Controls.Add(this.lblWorkItemsCompleted);
            this.groupBox2.Location = new System.Drawing.Point(3, 175);
            this.groupBox2.Name = "groupBox2";
            this.groupBox2.Size = new System.Drawing.Size(169, 96);
            this.groupBox2.TabIndex = 46;
            this.groupBox2.TabStop = false;
            this.groupBox2.Text = "Work items in STP";
            // 
            // label6
            // 
            this.label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.label6.Location = new System.Drawing.Point(8, 16);
            this.label6.Name = "label6";
            this.label6.Size = new System.Drawing.Size(48, 24);
            this.label6.TabIndex = 21;
            this.label6.Text = "Queued";
            this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // label7
            // 
            this.label7.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.label7.Location = new System.Drawing.Point(8, 40);
            this.label7.Name = "label7";
            this.label7.Size = new System.Drawing.Size(64, 24);
            this.label7.TabIndex = 25;
            this.label7.Text = "Generated";
            this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // label11
            // 
            this.label11.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.label11.Location = new System.Drawing.Point(8, 64);
            this.label11.Name = "label11";
            this.label11.Size = new System.Drawing.Size(64, 24);
            this.label11.TabIndex = 26;
            this.label11.Text = "Completed";
            this.label11.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // groupBox3
            // 
            this.groupBox3.Controls.Add(this.lblThreadInUse);
            this.groupBox3.Controls.Add(this.label12);
            this.groupBox3.Controls.Add(this.lblThreadsInPool);
            this.groupBox3.Controls.Add(this.label15);
            this.groupBox3.Location = new System.Drawing.Point(3, 277);
            this.groupBox3.Name = "groupBox3";
            this.groupBox3.Size = new System.Drawing.Size(169, 72);
            this.groupBox3.TabIndex = 47;
            this.groupBox3.TabStop = false;
            this.groupBox3.Text = "Threads";
            // 
            // label12
            // 
            this.label12.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.label12.Location = new System.Drawing.Point(8, 40);
            this.label12.Name = "label12";
            this.label12.Size = new System.Drawing.Size(80, 24);
            this.label12.TabIndex = 17;
            this.label12.Text = "Used (Green)";
            this.label12.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // label15
            // 
            this.label15.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.label15.Location = new System.Drawing.Point(8, 16);
            this.label15.Name = "label15";
            this.label15.Size = new System.Drawing.Size(72, 24);
            this.label15.TabIndex = 3;
            this.label15.Text = "In pool (Red)";
            this.label15.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // groupWIGQueues
            // 
            this.groupWIGQueues.Controls.Add(this.label13);
            this.groupWIGQueues.Controls.Add(this.label16);
            this.groupWIGQueues.Controls.Add(this.label17);
            this.groupWIGQueues.Controls.Add(this.queueUsageControl2);
            this.groupWIGQueues.Controls.Add(this.queueUsageControl1);
            this.groupWIGQueues.Controls.Add(this.queueUsageControl3);
            this.groupWIGQueues.Controls.Add(this.lblStatus1);
            this.groupWIGQueues.Controls.Add(this.lblStatus2);
            this.groupWIGQueues.Controls.Add(this.lblStatus3);
            this.groupWIGQueues.Dock = System.Windows.Forms.DockStyle.Left;
            this.groupWIGQueues.Enabled = false;
            this.groupWIGQueues.Location = new System.Drawing.Point(178, 3);
            this.groupWIGQueues.Name = "groupWIGQueues";
            this.groupWIGQueues.Size = new System.Drawing.Size(275, 391);
            this.groupWIGQueues.TabIndex = 48;
            this.groupWIGQueues.TabStop = false;
            this.groupWIGQueues.Text = "Work Items Groups Queues";
            // 
            // label13
            // 
            this.label13.Location = new System.Drawing.Point(17, 19);
            this.label13.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.label13.Name = "label13";
            this.label13.Size = new System.Drawing.Size(72, 13);
            this.label13.TabIndex = 40;
            this.label13.Text = "#1";
            this.label13.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
            // 
            // label16
            // 
            this.label16.Location = new System.Drawing.Point(102, 19);
            this.label16.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.label16.Name = "label16";
            this.label16.Size = new System.Drawing.Size(72, 13);
            this.label16.TabIndex = 41;
            this.label16.Text = "#2";
            this.label16.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
            // 
            // label17
            // 
            this.label17.Location = new System.Drawing.Point(186, 19);
            this.label17.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.label17.Name = "label17";
            this.label17.Size = new System.Drawing.Size(72, 13);
            this.label17.TabIndex = 42;
            this.label17.Text = "#3";
            this.label17.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
            // 
            // groupBox7
            // 
            this.groupBox7.Controls.Add(this.queueUsageControl6);
            this.groupBox7.Controls.Add(this.lblStatus6);
            this.groupBox7.Dock = System.Windows.Forms.DockStyle.Left;
            this.groupBox7.Location = new System.Drawing.Point(459, 3);
            this.groupBox7.Name = "groupBox7";
            this.groupBox7.Size = new System.Drawing.Size(151, 391);
            this.groupBox7.TabIndex = 50;
            this.groupBox7.TabStop = false;
            this.groupBox7.Text = "Smart Thread Pool Queue";
            // 
            // label3
            // 
            this.label3.Location = new System.Drawing.Point(4, 73);
            this.label3.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.label3.Name = "label3";
            this.label3.Size = new System.Drawing.Size(72, 18);
            this.label3.TabIndex = 2;
            this.label3.Text = "WIG #3";
            this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
            // 
            // label4
            // 
            this.label4.Location = new System.Drawing.Point(4, 40);
            this.label4.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.label4.Name = "label4";
            this.label4.Size = new System.Drawing.Size(72, 18);
            this.label4.TabIndex = 1;
            this.label4.Text = "WIG #2";
            this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
            // 
            // label5
            // 
            this.label5.Location = new System.Drawing.Point(4, 7);
            this.label5.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.label5.Name = "label5";
            this.label5.Size = new System.Drawing.Size(72, 18);
            this.label5.TabIndex = 0;
            this.label5.Text = "WIG #1";
            this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
            // 
            // label8
            // 
            this.label8.Location = new System.Drawing.Point(6, 31);
            this.label8.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.label8.Name = "label8";
            this.label8.Size = new System.Drawing.Size(72, 18);
            this.label8.TabIndex = 0;
            this.label8.Text = "STP";
            this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
            // 
            // label1
            // 
            this.label1.AutoSize = true;
            this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(177)));
            this.label1.Location = new System.Drawing.Point(6, 9);
            this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(44, 13);
            this.label1.TabIndex = 68;
            this.label1.Text = "Queue";
            // 
            // label2
            // 
            this.label2.AutoSize = true;
            this.label2.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(177)));
            this.label2.Location = new System.Drawing.Point(65, 9);
            this.label2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.label2.Name = "label2";
            this.label2.Size = new System.Drawing.Size(78, 13);
            this.label2.TabIndex = 69;
            this.label2.Text = "Concurrency";
            // 
            // label9
            // 
            this.label9.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(177)));
            this.label9.Location = new System.Drawing.Point(147, 1);
            this.label9.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.label9.Name = "label9";
            this.label9.Size = new System.Drawing.Size(79, 30);
            this.label9.TabIndex = 70;
            this.label9.Text = "Cancel Work Items";
            this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
            // 
            // label10
            // 
            this.label10.AutoSize = true;
            this.label10.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(177)));
            this.label10.Location = new System.Drawing.Point(234, 10);
            this.label10.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.label10.Name = "label10";
            this.label10.Size = new System.Drawing.Size(114, 13);
            this.label10.TabIndex = 71;
            this.label10.Text = "Work Items Priority";
            // 
            // label14
            // 
            this.label14.AutoSize = true;
            this.label14.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.label14.Location = new System.Drawing.Point(6, 125);
            this.label14.Name = "label14";
            this.label14.Size = new System.Drawing.Size(92, 13);
            this.label14.TabIndex = 4;
            this.label14.Text = "Idle timeout (Sec):";
            this.label14.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
            // 
            // label18
            // 
            this.label18.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(177)));
            this.label18.Location = new System.Drawing.Point(368, -5);
            this.label18.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.label18.Name = "label18";
            this.label18.Size = new System.Drawing.Size(121, 36);
            this.label18.TabIndex = 75;
            this.label18.Text = "Work Items Produced / Second";
            this.label18.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
            // 
            // label19
            // 
            this.label19.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(177)));
            this.label19.Location = new System.Drawing.Point(494, -1);
            this.label19.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
            this.label19.Name = "label19";
            this.label19.Size = new System.Drawing.Size(126, 32);
            this.label19.TabIndex = 77;
            this.label19.Text = "Work Item Duration (milliseconds)";
            this.label19.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
            // 
            // timer2
            // 
            this.timer2.Enabled = true;
            this.timer2.Interval = 1000;
            this.timer2.Tick += new System.EventHandler(this.timer2_Tick);
            // 
            // panelWIGsCtrls
            // 
            this.tableLayoutPanel1.SetColumnSpan(this.panelWIGsCtrls, 3);
            this.panelWIGsCtrls.Controls.Add(this.label5);
            this.panelWIGsCtrls.Controls.Add(this.spinCon2);
            this.panelWIGsCtrls.Controls.Add(this.spinDuration3);
            this.panelWIGsCtrls.Controls.Add(this.spinCon3);
            this.panelWIGsCtrls.Controls.Add(this.spinProduction3);
            this.panelWIGsCtrls.Controls.Add(this.spinCon1);
            this.panelWIGsCtrls.Controls.Add(this.spinDuration2);
            this.panelWIGsCtrls.Controls.Add(this.label4);
            this.panelWIGsCtrls.Controls.Add(this.spinProduction2);
            this.panelWIGsCtrls.Controls.Add(this.label3);
            this.panelWIGsCtrls.Controls.Add(this.spinDuration1);
            this.panelWIGsCtrls.Controls.Add(this.btnCancel3);
            this.panelWIGsCtrls.Controls.Add(this.spinProduction1);
            this.panelWIGsCtrls.Controls.Add(this.btnCancel2);
            this.panelWIGsCtrls.Controls.Add(this.comboWIPriority3);
            this.panelWIGsCtrls.Controls.Add(this.btnCancel1);
            this.panelWIGsCtrls.Controls.Add(this.comboWIPriority2);
            this.panelWIGsCtrls.Controls.Add(this.comboWIPriority1);
            this.panelWIGsCtrls.Location = new System.Drawing.Point(0, 452);
            this.panelWIGsCtrls.Margin = new System.Windows.Forms.Padding(0);
            this.panelWIGsCtrls.Name = "panelWIGsCtrls";
            this.panelWIGsCtrls.Size = new System.Drawing.Size(612, 105);
            this.panelWIGsCtrls.TabIndex = 1;
            // 
            // timerPoll
            // 
            this.timerPoll.Interval = 500;
            this.timerPoll.Tick += new System.EventHandler(this.timerPoll_Tick);
            // 
            // panel1
            // 
            this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)));
            this.panel1.AutoSize = true;
            this.panel1.Controls.Add(this.groupBox2);
            this.panel1.Controls.Add(this.btnMode);
            this.panel1.Controls.Add(this.groupBox3);
            this.panel1.Controls.Add(this.btnStart);
            this.panel1.Controls.Add(this.btnPause);
            this.panel1.Controls.Add(this.spinIdleTimeout);
            this.panel1.Controls.Add(this.label14);
            this.panel1.Location = new System.Drawing.Point(0, 0);
            this.panel1.Margin = new System.Windows.Forms.Padding(0);
            this.panel1.Name = "panel1";
            this.panel1.Size = new System.Drawing.Size(175, 397);
            this.panel1.TabIndex = 0;
            // 
            // panel2
            // 
            this.tableLayoutPanel1.SetColumnSpan(this.panel2, 3);
            this.panel2.Controls.Add(this.btnCancel6);
            this.panel2.Controls.Add(this.spinDuration6);
            this.panel2.Controls.Add(this.label9);
            this.panel2.Controls.Add(this.label18);
            this.panel2.Controls.Add(this.label19);
            this.panel2.Controls.Add(this.spinProduction6);
            this.panel2.Controls.Add(this.comboWIPriority6);
            this.panel2.Controls.Add(this.label10);
            this.panel2.Controls.Add(this.label2);
            this.panel2.Controls.Add(this.label1);
            this.panel2.Controls.Add(this.label8);
            this.panel2.Controls.Add(this.spinCon6);
            this.panel2.Location = new System.Drawing.Point(0, 397);
            this.panel2.Margin = new System.Windows.Forms.Padding(0);
            this.panel2.Name = "panel2";
            this.panel2.Size = new System.Drawing.Size(612, 55);
            this.panel2.TabIndex = 0;
            // 
            // tableLayoutPanel1
            // 
            this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
                        | System.Windows.Forms.AnchorStyles.Left)));
            this.tableLayoutPanel1.ColumnCount = 3;
            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
            this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
            this.tableLayoutPanel1.Controls.Add(this.panel2, 0, 1);
            this.tableLayoutPanel1.Controls.Add(this.panel1, 0, 0);
            this.tableLayoutPanel1.Controls.Add(this.panelWIGsCtrls, 0, 2);
            this.tableLayoutPanel1.Controls.Add(this.groupBox7, 2, 0);
            this.tableLayoutPanel1.Controls.Add(this.groupWIGQueues, 1, 0);
            this.tableLayoutPanel1.Location = new System.Drawing.Point(6, 146);
            this.tableLayoutPanel1.MinimumSize = new System.Drawing.Size(615, 351);
            this.tableLayoutPanel1.Name = "tableLayoutPanel1";
            this.tableLayoutPanel1.RowCount = 3;
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F));
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 55F));
            this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 105F));
            this.tableLayoutPanel1.Size = new System.Drawing.Size(615, 557);
            this.tableLayoutPanel1.TabIndex = 95;
            // 
            // Form1
            // 
            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
            this.ClientSize = new System.Drawing.Size(628, 715);
            this.Controls.Add(this.tableLayoutPanel1);
            this.Controls.Add(this.groupBox1);
            this.Controls.Add(this.groupBox4);
            this.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(177)));
            this.MinimumSize = new System.Drawing.Size(636, 695);
            this.Name = "Form1";
            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
            this.Text = "Work Items Group Demo";
            this.Load += new System.EventHandler(this.Form1_Load);
            ((System.ComponentModel.ISupportInitialize)(this.spinCon6)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.spinCon1)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.spinCon3)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.spinCon2)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.spinProduction6)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.spinDuration6)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.spinDuration1)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.spinProduction1)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.spinDuration2)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.spinProduction2)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.spinDuration3)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.spinProduction3)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.spinIdleTimeout)).EndInit();
            this.groupBox4.ResumeLayout(false);
            this.groupBox1.ResumeLayout(false);
            this.groupBox2.ResumeLayout(false);
            this.groupBox3.ResumeLayout(false);
            this.groupWIGQueues.ResumeLayout(false);
            this.groupBox7.ResumeLayout(false);
            this.panelWIGsCtrls.ResumeLayout(false);
            this.panel1.ResumeLayout(false);
            this.panel1.PerformLayout();
            this.panel2.ResumeLayout(false);
            this.panel2.PerformLayout();
            this.tableLayoutPanel1.ResumeLayout(false);
            this.tableLayoutPanel1.PerformLayout();
            this.ResumeLayout(false);

        }

        #endregion

        private UsageControl.QueueUsageControl queueUsageControl1;
        private System.Windows.Forms.Button btnStart;
        private System.Windows.Forms.Timer timer1;
        private System.Windows.Forms.Button btnPause;
        private UsageControl.QueueUsageControl queueUsageControl2;
        private UsageControl.QueueUsageControl queueUsageControl3;
        private UsageControl.QueueUsageControl queueUsageControl6;
        private System.Windows.Forms.ToolTip toolTip1;
        private System.Windows.Forms.Label lblStatus1;
        private System.Windows.Forms.Label lblStatus2;
        private System.Windows.Forms.Label lblStatus3;
        private System.Windows.Forms.Label lblStatus6;
        private System.Windows.Forms.GroupBox groupBox4;
        private UsageControl.UsageHistoryControl usageHistorySTP;
        private System.Windows.Forms.GroupBox groupBox1;
        private UsageControl.UsageControl usageThreadsInPool;
        private System.Windows.Forms.GroupBox groupBox2;
        private System.Windows.Forms.Label lblWaitingCallbacks;
        private System.Windows.Forms.Label label6;
        private System.Windows.Forms.Label label7;
        private System.Windows.Forms.Label label11;
        private System.Windows.Forms.Label lblWorkItemsGenerated;
        private System.Windows.Forms.Label lblWorkItemsCompleted;
        private System.Windows.Forms.GroupBox groupBox3;
        private System.Windows.Forms.Label lblThreadInUse;
        private System.Windows.Forms.Label label12;
        private System.Windows.Forms.Label lblThreadsInPool;
        private System.Windows.Forms.Label label15;
        private System.Windows.Forms.GroupBox groupWIGQueues;
        private System.Windows.Forms.Label label13;
        private System.Windows.Forms.Label label16;
        private System.Windows.Forms.Label label17;
        private System.Windows.Forms.GroupBox groupBox7;
        private System.Windows.Forms.Button btnCancel1;
        private System.Windows.Forms.Button btnCancel2;
        private System.Windows.Forms.Button btnCancel3;
        private System.Windows.Forms.Label label3;
        private System.Windows.Forms.Label label4;
        private System.Windows.Forms.Label label5;
        private System.Windows.Forms.NumericUpDown spinCon6;
        private System.Windows.Forms.NumericUpDown spinCon1;
        private System.Windows.Forms.NumericUpDown spinCon3;
        private System.Windows.Forms.NumericUpDown spinCon2;
        private System.Windows.Forms.Label label8;
        private System.Windows.Forms.Label label1;
        private System.Windows.Forms.Label label2;
        private System.Windows.Forms.Label label9;
        private System.Windows.Forms.Label label10;
        private System.Windows.Forms.ComboBox comboWIPriority6;
        private System.Windows.Forms.Label label14;
        private System.Windows.Forms.NumericUpDown spinProduction6;
        private System.Windows.Forms.Label label18;
        private System.Windows.Forms.NumericUpDown spinDuration6;
        private System.Windows.Forms.Label label19;
        private System.Windows.Forms.Button btnCancel6;
        private System.Windows.Forms.ComboBox comboWIPriority1;
        private System.Windows.Forms.ComboBox comboWIPriority2;
        private System.Windows.Forms.ComboBox comboWIPriority3;
        private System.Windows.Forms.NumericUpDown spinDuration1;
        private System.Windows.Forms.NumericUpDown spinProduction1;
        private System.Windows.Forms.NumericUpDown spinDuration2;
        private System.Windows.Forms.NumericUpDown spinProduction2;
        private System.Windows.Forms.NumericUpDown spinDuration3;
        private System.Windows.Forms.NumericUpDown spinProduction3;
        private System.Windows.Forms.NumericUpDown spinIdleTimeout;
        private System.Windows.Forms.Timer timer2;
        private System.Windows.Forms.Panel panelWIGsCtrls;
        private System.Windows.Forms.Button btnMode;
        private System.Windows.Forms.Timer timerPoll;
        private System.Windows.Forms.Panel panel1;
        private System.Windows.Forms.Panel panel2;
        private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1;
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Microsoft Public License (Ms-PL)


Written By
Software Developer (Senior)
Israel Israel
B.Sc. in Computer Science.
Works as Software Developer.

Comments and Discussions