1
行 行 行 行.NET 行 行 類 來 行 行 Thread 類 行 System.Threading 來 類
Thread 類 (1) public Thread(ThreadStart start ); Name 行 IsAlive 行 行狀 Start 行 行 Suspend 行 Resume 行 行
Thread 類 (2) Sleep 行 CurrentThread 行 ThreadStart mythreadstart = new ThreadStart(); Thread mythread = new Thread(myThreadStart);
例 sample10-a1 (1) Thread 類 class box { public static bool stopflag = false; private System.Windows.Forms.Label mylb; public box(system.windows.forms.label LB) { mylb = LB; }
例 sample10-a1 (2) public void action() { Random rnd = new Random(); do { mylb.top += rnd.next(0,2) == 0? 50: -50; if(mylb.top <= 0) mylb.top += 100; else if(mylb.top >= 400) mylb.top -= 100; Thread.Sleep(500); }while(!stopflag); } }
例 sample10-a1 (3) private void startbtn_click(object sender, System.EventArgs e) { startbtn.enabled = false; box mybox1 = new box(box1lb); box mybox2 = new box(box2lb); Thread box1thread = new Thread(new ThreadStart(myBox1.action)); Thread box2thread = new Thread(new ThreadStart(myBox2.action)); box1thread.name = "box1"; box2thread.name = "box2";
例 sample10-a1 (4) box1thread.start(); Thread.Sleep(200); box2thread.start(); } private void endbtn_click(object sender, System.EventArgs e) { box.stopflag = true; Application.Exit(); }
例 sample10-a2 (1) 利 行 行 量 private void computebtn_click(object sender, System.EventArgs e) { computing(); } private void computing() { try { resultlb.text = (garbage(int.parse(numtb.text))).tostring(); }
例 sample10-a2 (2) catch { resultlb.text = "--"; } } private int garbage(int num) { if(num <= 4) return num; else return garbage(num-1)-garbage(num-2) +garbage(num-3)-garbage(num-4); }
練 sample10-b1 利 行 sample10-a2 例 念 System.Threading 利 Thread 類 行 來 行
(1).NET
(2) 料 Program Files 料
(3) 料 [] []
(4) 立
(5) 行 連 料 料 立 行 料 Setup.Exe
例 sample10-a3 立 料.exe 行.mdb 料.ico 料.exe 行.exe 行
IIS (1) 行 ASP.NET Web IIS [ ] [ ] [/ Windows ]
IIS (2) [/ Windows ] [Windows 精靈 ] IIS 行
IIS (3) IIS 連 http://localhost/ 若 IIS 利
錄 (1) Web (C:\Inetpub\wwwroot) 料 錄 錄 [ ] [ 理 ] [Internet Information Services]
錄 (2) Internet Information Services 料 [ ] 錄
錄 (3) [ ] 立 錄
錄 (4) 錄 錄 URL http://localhost/aspnet/
錄 (5) 錄
錄 (6)
錄 (7) 錄 立
例 sample10-a4 (1) 易 理 來 userdata1.aspx login.aspx private void loginbtn_click(object sender, System.EventArgs e) { if((idtb.text=="alice" idtb.text=="bob") && pwtb.text=="ntu") { Response.Redirect("userData1.aspx"); } }
例 sample10-a4 (2) login.aspx private void clearbtn_click(object sender, System.EventArgs e) { idtb.text = ""; pwtb.text = ""; } userdata1.aspx Label "!!"
Session 念 連 Session ID 料 料 Server Request 都 Session ID Server ID 來索 Session
Session SessionID 來識 Session ID Timeout Session () Clear() Session Add(string name, object value) Session
Session 立 Session.Add(string name, object value) Ex.Session.Add( name, Alice ); Session[string name] Ex Label1.Text = Session[ name ].ToString();
例 sample10-a5 (1) 易 理 切 念 立 Session 料 Session 句
例 sample10-a5 (2) login1.aspx private void loginbtn_click(object sender, System.EventArgs e) { if((idtb.text=="alice" idtb.text=="bob")&&pwtb.text== "ntu") { Session.Add("name", idtb.text); Response.Redirect("userData1.aspx"); } } userdata1.aspx private void Page_Load(object sender, System.EventArgs e) { hellolb.text = Session["name"].ToString()+ "!!"; }