Exemple #1
0
    public static void Main(string[] args)
    {
        MinHeap processes = new MinHeap();

        RunThread r1 = new RunThread("Consumer-1", processes, RUN_SLEEP_INTERVAL);
        RunThread r2 = new RunThread("Consumer-2", processes, RUN_SLEEP_INTERVAL);

        Thread rt1 = new Thread(new ThreadStart(r1.run));
        Thread rt2 = new Thread(new ThreadStart(r2.run));

        rt1.Start();
        rt2.Start();

        AddThread a1 = new AddThread(processes, ADD_BATCH_NUM, ADD_BATCH_SIZE, ADD_PRIORITY_MIN, ADD_PRIORITY_MAX, ADD_SLEEP_INTERVAL, ADD_SLEEP_MIN, ADD_SLEEP_MAX);

        Thread at1 = new Thread(new ThreadStart(a1.run));

        at1.Start();

        at1.Join();
        r1.noNewWork();
        r2.noNewWork();

        rt1.Join();
        rt2.Join();
    }
Exemple #2
0
        /// <summary>
        /// Добавить новую нить
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void addThreadToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AddThread addThread = new AddThread();

            addThread.Mode = FormMode.Add;
            addThread.ShowDialog();
            if (addThread.Result == DialogResult.OK)
            {
                ThreadUnit thread = addThread.Thread;
                _configuration.ListThreadUnits.Add(thread);

                UpdateThreadsList();
                _statusBarMessage = $"Добавлена новая нить [{thread.Name}]";
                statusBar1.Text   = _statusBarMessage;
                _modified         = true;
            }

            addThread.Dispose();
        }
Exemple #3
0
        /// <summary>
        /// Изменить параметры линии производства
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void editThreadToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AddThread  addThread = new AddThread();
            ThreadUnit unit      = _configuration.FindThreadByName(threadsList.Text);

            addThread.Mode   = FormMode.Edit;
            addThread.Thread = unit;
            addThread.EditThread();
            if (addThread.Result == DialogResult.OK)
            {
                ThreadUnit thread = addThread.Thread;
                _configuration.ReplaceThreadUnit(thread);

                UpdateThreadsList();
                _statusBarMessage = $"Изменены параметры нити [{thread.Name}]";
                statusBar1.Text   = _statusBarMessage;
                _modified         = true;
            }

            addThread.Dispose();
        }