【ASP.NET】.NET多线程与异步编程

2013-04-13 | 发布者: 本站| 查看: 652|

1、多线程:

NET多线程操作的话是在 using System.Threading;

创建线程的第一种方法:ThreadStart  worker = new ThreadStart(WorkerThreadMethod);

ThreadStart是一个委托,其原型是空返回值且无参数。

Thread t = new Thread(worker); 创建线程。

废话不多说,直接看例子:下面的例子是比较通过一个线程比较2个数的大小(由于ThreadStart委托没有参数也没有返回值,所以只有通过类来封装)

  1. public class comper  
  2.         {  
  3.             public int NumA { getset; }  
  4.             public int NumB { getset; }  
  5.             public int Result { getset; }  
  6.             public void ComResult()  
  7.             {  
  8.                 Result = NumA > NumB ? NumA : NumB;  
  9.             }     
  10.         }   
  11.         private void button1_Click(object sender, EventArgs e)  
  12.         {  
  13.             comper c = new comper();  
  14.             c.NumA = 10;  c.NumB = 5;  
  15.             Thread t=null;        
  16.             //ThreadStart ts = new ThreadStart(c.ComResult);  
  17.             // t = new Thread(ts);  
  18.             try  
  19.             {  
  20.                     t = new Thread(c.ComResult);  
  21.                     t.Start();  
  22.                     Thread.Sleep(1000); label1.Text = c.Result.ToString();  
  23.             }  
  24.             catch (Exception) { }  
  25.                 finally  
  26.                 {  
  27.                     if (t.ThreadState != ThreadState.Aborted) t.Abort();//销毁线程  
  28.                 }  
  29.           
  30.         }  
  31. 在单线程编程中,对象常处于临时的无效状态,如果每次只有一个线程访问这个对象,就能保证完成一个方法后再调用另一个方法。在多线程环境,处理器切换到另一个线程,而对象正处于有效状态,如果此线程仍然试图使用这个对象,结果是不可以预知的。如何防止?使用同步,通过同步过程指定代码的临界区,每次只能有一个线程进入临界区。只有通过Monitor 、Mutex 或者C# lock语句(单例模式有使用到)。

上一篇:网站优化-为何要持续地做关键词 下一篇:【SQL】数据首字母按英文查询
更多

咨询热线:18680769880

Copyright © 巴适网络 All Rights Reserved 版权声明 渝ICP备15005483号-1

重庆网络营销|重庆移动互联网营销|重庆微营销|重庆微服务|重庆云广告|重庆云商场|重庆微官网

巴适在线
【电话】18523625039
【电话】18680769880
【售前1】 巴适网络 838922836
【售前2】 巴适网络 421643133
【售前3】 巴适网络 952056566
【售后1】 巴适网络 493434274
【售后2】 巴适网络 421643133
【地址】 (深圳市宝安区)
【巴适网络】
【www.bashinet.com】