黑马程序员——线程的知识

来源:互联网 发布:淘宝开店规定 编辑:程序博客网 时间:2024/05/21 14:45

---------------------- <a href="http://net.itheima.com/" target="blank">Windows Phone 7手机开发</a>、<a href="http://net.itheima.com/" target="blank">.Net培训</a>、期待与您交流! ----------------------


1、一个程序就是一个进程,一个进程至少有一个线程



   同一个进程中的多个线程之间可以“并发”执行


2、线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈)指针、程序计数器等,但代码区是共享的,即不同的线程可以执行同样的函数。

   

   多线程是指程序中包含多个执行流,即在一个程序专用可以同时运行多个不同的线程来执行不同的任务(代码),也就是说允许单个程序创建多个并行的线程来完成各自的任务。


   .net中线程启动时,通过委托来调用该方法。


   俩个线程执行相同的代码区,但它们俩个的执行是相对独立的存在。


   关闭微软检查当前控件textbox的线程:textbox.CheckForIllegalCrossThreadCalls=false;


3、调用线程的命名空间是using  system.Threading;


   创建线程:
      Thread ne=new Thread(要调用的方法--需要看看委托是否有返回值);
      
      ne.IsBackground=true;


      ne.Start();


4、计算一个程序执行用了多长时间:


   DateTime data=DateTime.Now;
   for(int i=0;i<100;i++)
   { 
      
    }
   TimeSpan ts=data.Subtract(DateTime.Now);--用结束时间-开始的时间


5、线程不允许调用有返回值的方法


   多线程执行的时间比单线程要长一点(多线程操作时,会放下一个未执行完的线程,去执行另一个线程),而单线程执行时窗体不能,多线程却能。


6、创建线程前,必须先定义一个方法


   线程执行完自动关闭


7、前台线程:只有所有的前台线程都关闭才能完成程序关闭


   后台线程:只有所有的前台线程结束,后台线程自动结束。
   
   调用属性(IsBackground)进而将线程设置为后台线程:


       Thread ne=new Thread(要调用的方法--需要看看委托是否有返回值);
        
       ne.IsBackground=true;


       ne.Start();


8、Star()启动线程


   Abort()终止线程


   Thread.Sleep()静态方法,可以使当前线程停止一段时间运行


   Name线程名


   Thread.CurrentThread获得当前的线程引用


9、线程执行带参数的方法


   方法的参数类型要于Thread中定义的类型一样,


   用Start(用于传定义的方法参数的值)方法进行传参数


---------------------- <a href="http://net.itheima.com/" target="blank">Windows Phone 7手机开发</a>、<a href="http://net.itheima.com/" target="blank">.Net培训</a>、期待与您交流! ----------------------


 
   

































原创粉丝点击