ASP.NET 請求處理 四 (Controller基本特性)
阿新 • • 發佈:2020-12-01
public class TestController : Controller { [ThreadStatic] static ThreadInfo obj; [HttpGet] public string Index() { return "123456"; } [HttpGet] public string bbb() { bool bnew = obj == null;if (bnew) { obj = new ThreadInfo(); obj.id = Thread.CurrentThread.ManagedThreadId.ToString(); obj.name = "controller hash="+this.GetHashCode(); } return bnew+"______class info{ hash:"+this.GetHashCode().ToString()+",thread id:"+Thread.CurrentThread.ManagedThreadId.ToString() +",_________"+obj.ToString(); } } class ThreadInfo { public String id; public String name; public override string ToString() { return "threadinfo{id:"+id+",name:"+name+",thread obj hash:"+GetHashCode().ToString(); } } //True______class info{ hash:26130175,thread id:67,_________threadinfo{id:67,name:controller hash=26130175,thread obj hash:19998225 //False______class info{ hash:23697479,thread id:67,_________threadinfo{id:67,name:controller hash=26130175,thread obj hash:19998225 //True______class info{ hash:55575390,thread id:74,_________threadinfo{id:74,name:controller hash=55575390,thread obj hash:18085517 //False______class info{ hash:7922750,thread id:74,_________threadinfo{id:74,name:controller hash=55575390,thread obj hash:18085517 //False______class info{ hash:26960933,thread id:67,_________threadinfo{id:67,name:controller hash=26130175,thread obj hash:19998225 //False______class info{ hash:64947243,thread id:67,_________threadinfo{id:67,name:controller hash=26130175,thread obj hash:19998225
1.每次請求都會生成一個controller例項 (這個和java-spring裡面預設的controller模式有區別)
2.請求會從執行緒池中取執行緒來處理