- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace ThreadTest
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- }
- static EventWaitHandle eHandle = new EventWaitHandle(false, EventResetMode.ManualReset);
- bool flag = false;
- private void button1_Click(object sender, EventArgs e)
- {
- richTextBox1.Clear();
- for (int i = 1; i <= 100; i++) {
- richTextBox1.AppendText(i + "\r\n");
- if (i % 10 == 0) {
- eHandle = new EventWaitHandle(false, EventResetMode.ManualReset);
- Thread currentThread = new Thread(new ThreadStart(TestProcess));//开辟一个进度条线程
- currentThread.Start();
- eHandle.WaitOne();
- richTextBox1.AppendText("i是10的倍数: i = " + i + "\r\n");
- if (flag == true)
- {
- richTextBox1.AppendText("程序结束" + "\r\n");
- break;
- }
- }
- }
- }
- private void TestProcess() {
- if (MessageBox.Show("确定要退出吗?", "Message", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel)
- {
- flag = false;
- }
- else
- {
- flag = true;
- }
- eHandle.Set();
- }
- private void richTextBox1_TextChanged(object sender, EventArgs e)
- {
- richTextBox1.SelectionStart = richTextBox1.Text.Length;
- richTextBox1.ScrollToCaret();
- }
- }
- }