悟生慧

 

两个按钮分别是线程的打开和终止

public partial class Form1 : Form
    {
        Thread thread=null;
        int n = 0;
bool severIsRun=false;//用来村示线程是否启动
private delegate void myDelegate(string str);//定义委托
private void setRich(string str)//委托
        {
            if (this.textBox1.InvokeRequired)
            {
                myDelegate md = new myDelegate(this.setRich);
                this.Invoke(md, new object[] { str });
            }
            else
                this.textBox1.Text =str;
        }

        public Form1()
        {
            InitializeComponent();
        }

        private void run()
        {
            while(true)
            {
                setRich((n++).toString());
                Thread.Sleep(1000);
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
           if(!severIsRun)
           {
            ThreadStart ts =new ThreadStart(run);
            Thread = new Thread(ts);
            severIsRun=true;
            thread.Start();
           }
        }

        private void button2_Click(object sender, EventArgs e)
        {
           if(severIsRun)
           {
                    thread.Abort();
                     severIsRun=false;
            }
       }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if(severIsRun)
             {
                    thread.Abort();
                     severIsRun=false;
              }
        }
}

posted on 2010-08-14 15:59  悟生慧  阅读(372)  评论(0编辑  收藏  举报

导航