Web主线程中的主线程
网站被用户加载后,可能你会打开/product/index这种页面,它将会在服务器端产生一个线程,这个线程我们称为主线程,当然你的程序中也可以通过Thread类建立其它线程,但只要你加开页面,就会有一个主线程被加载,这是一定的,我们可以通过Thread.CurrentThread静态属性来获得当前运行着的线程,对于每个客户端来说,它都是唯一的,但不同的客户端,它是不同的,例如: 客户端A访问/product/index页面,它所得到Thread.CurrentThread.ManagedThreadId可能是8,而客户端B访问这个页面时,它的值可能是12,这是我们要注意的地方. 当然,如果A所在的线程8被系统回收了,那B有可能会被分配到这个8号线程,所以,大家在使用线程时,需要考虑这种情况幼,它可能会隐藏一些潜在的问题! 我们一般可以通过下面代码去测试你的当前线程: public ActionResult About1() { ViewData["msg"] = "当前线程:" + Thread.CurrentThread.ManagedThreadId.ToString(); return View(); } 对于一个页面,也可以通过创建多线程的方式,来模拟多个客户端,代码如下: for (int i = 0; i < 10; i++) { var t = new