예제 #1
0
파일: Form1.cs 프로젝트: nbirillo/Studying
        public Form1()
        {
            InitializeComponent();

            for (int i = 0; i < countOfThreads; i++)
            {
                isReaders[i] = false;
            }
            isReaders[1] = true;
            countOfReaders = 1;

            if (!File.Exists(path))
            {
                sw = File.CreateText(path);
                sw.Close();
            }

            for (int i = 0; i < countOfThreads; i++)
            {
                freeNum++;
                dataGridView1.Rows.Add("Thread " + i, "ololo");
                IncThreadClass threadClass = new IncThreadClass("Thread " + i, i, 1, dataGridView1, this);
                threads[i] = new Thread(new ThreadStart(threadClass.Work));
                threads[i].Start();
                threadsStates[i] = new MyThreadState();
                threadsStates[i] = MyThreadState.Run;
                threadsNames[i] = "Thread " + i;
            }

            pdClass = new PrintDaemonClass(this);
            printDaemonThread = new Thread(new ThreadStart(pdClass.PrintDaemon));
            printDaemonThread.Start();

            isEndInitFlag = true;
        }
예제 #2
0
파일: Form1.cs 프로젝트: nbirillo/Studying
        private void startToolStripMenuItem_Click(object sender, EventArgs e)
        {
            int rowI = dataGridView1.SelectedCells[0].RowIndex;
            if (threadsStates[rowI] == MyThreadState.Stop)
            {
                IncThreadClass threadClass = new IncThreadClass("Thread " + freeNum, rowI, 1, dataGridView1, this);
                threads[rowI] = new Thread(new ThreadStart(threadClass.Work));
                threads[rowI].Start();
                threadsStates[rowI] = MyThreadState.Run;
                threadsNames[rowI] = "Thread " + freeNum;
                freeNum++;

                shiftUpThreadsInfo(rowI);
            }
        }