您的位置:首页 > 职场人生

黑马程序员—— c#中的多线程

2014-02-15 16:28 211 查看
  为什么要用多线程呢?

1.       让计算机“同时”做多件事情,节约时间

2.       后台运行程序,提高程序的运行效率,也不会使主界面出现无响应的情况

3.       多线程可以让一个程序“同时”处理多个事件

4.       计算机cpu大部分时间处于空闲状态,浪费了cpu资源。

.net中如何让实现多线程的呢?

线程肯定也是要执行一段代码的。所以要产生一个线程,必须先为该线程写一个方法,这个方法中的代码就是该线程运行所要执行的代码(找个人来做一件事)。线程启动时,通过委托调用该方法。线程启动时,调用传过来的委托。委托就会执行相应的方法,实现线程执行方法。

  namespace _02多线程
{
    public
partial class
Form1 : Form
    {
        publicForm1()
        {
            InitializeComponent();
            TextBox.CheckForIllegalCrossThreadCalls=false;
        }
 
        privatevoid button2_Click(objectsender,EventArgs e)
        {
            //创建线程对象,传入线程要执行的方法
            ThreadthreadFirst =new
Thread(counttime);
            //将线程设¨置为后台线程¨(当所有前台线程结束后,后台线程会自动退出)
            threadFirst.IsBackground = true;
            //启动线程执行方法
            threadFirst.Start();
        }
        voidcounttime()
        {
            for(int i = 0; i < 999999999; i++)
            {
            }
            MessageBox.Show("循环完ª毕?");
        }
       //以下代码验证了单线程带来的缺点
        privatevoid button1_Click(objectsender,EventArgs e)
        {
            counttime();
        }

     void changeTxt()
        {
            for(int i = 0; i <1000; i++)
            {
                inta =
int.Parse(textBox1.Text);
                Console.WriteLine(Thread.CurrentThread.Name +",a=" + a);
                a++;
                textBox1.Text = a.ToString();
              
            }
        }
        //下面代码表现了多线程方法重入问题
        privatevoid button3_Click(objectsender,EventArgs e)
        {
            Threadthread1 =
new Thread(changeTxt);
            thread1.Name = "t1";
            thread1.IsBackground = true;
            thread1.Start();
 
            Threadthread2 =
new Thread(changeTxt);
            thread2.Name = "t2";
            thread2.IsBackground = true;
            thread2.Start();
        }
 
    }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  黑马程序员 .net