




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、回顧 u調(diào)試是搜尋和消除應(yīng)用程序中的錯誤的過程u語法錯誤表示編譯器無法理解代碼u調(diào)試模式可用來重復(fù)編譯和排除應(yīng)用程序中的錯誤,直至能夠成功運行u“局部變量”窗口允許用戶監(jiān)控當(dāng)前程序中所有變量的值u單元測試和集成測試是測試大型應(yīng)用程序的常用技術(shù)u當(dāng)應(yīng)用程序遇到運行時錯誤時,就會引發(fā)異常uC# 中的所有異常都派生自 Exception 類目標(biāo)u理解線程的概念u理解.NET中線程的屬性和方法u創(chuàng)建和使用線程u理解線程的特點、優(yōu)點及使用場合同時執(zhí)行所有任務(wù),時間更少,效率更高 人 體線程簡介讀 ,寫一覽無遺血液循環(huán)在同一時間點執(zhí)行各項進程 編譯程序 發(fā)送/接收郵件 打印文件 其他操作系統(tǒng)允許計算機同時
2、執(zhí)行多項操作程序(進程)線程簡介程序 1 程序 2線程 1線程 2線程 3線程 1線程 2線程 3單獨的執(zhí)行路徑線程簡介在以下情況中可能要使用到多線程: l程序需要同時執(zhí)行兩個或多個任務(wù)l程序要等待某事件的發(fā)生,例如用戶輸入、文件操作、網(wǎng)絡(luò)操作、搜索等l后臺程序System.Threading 命名空間 2-1 System.Threading 命名空間 2-2System.DelegateSystem. MulticastDelegateThreadStart System.ValueTypeSystem.EnumThreadPriority System.ObjectSystem.Thre
3、adingThread 類的屬性和方法 2-1引用System.Threading 命名空間Thread 線程實例名 = new Thread(new ThreadStart(方法名);運行在線程上的方法只創(chuàng)建但不啟動線程只創(chuàng)建但不啟動線程線程實例名.Start();Thread 類的屬性和方法屬性屬性CurrentThreadIsAliveNamePriorityThreadState方法方法Sleep()Abort()Join()Resume()Start() Suspend()靜態(tài)靜態(tài)線程的生命周期在 I/O 操作期間線程被阻止線程已創(chuàng)建但并未啟動線程已啟動I/O 操作完成后運行線程被阻
4、止,另一個操作正在進行提前中斷或特地停止線程暫時中斷的線程 線程已恢復(fù)示例class SimpleThreadDemo static void Main(string args) Thread.CurrentThread.Name = “主線程;Thread objThread = new Thread(new ThreadStart(ActionMethod);objThread.Name = “子線程; /啟動子線程, 并為該線程執(zhí)行 ActionMethodobjThread.Start();/這將為主線程執(zhí)行 ActionMethodActionMethod(); static voi
5、d ActionMethod() for(int count = 1; count = 10 ; count+) Console.WriteLine(“線程名: + Thread.CurrentThread.Name); 實例化 objThread 線程并開始執(zhí)行 ActionMethod()將由應(yīng)用程序線程執(zhí)行輸出結(jié)果混亂鎖定機制程序線程1 1線程2 2共享資源 鎖定機制保證每次只有一個線程可以訪問共享資源緩沖和隔離示例class ThreadLockDemostatic void Main()Thread.CurrentThread.Name = “主線程;ThreadLockDemo o
6、bjDemo = new ThreadLockDemo();Thread newThread = new Thread(new ThreadStart(objDemo.DoTask);newThread.Name = “子線程;newThread.Start();objDemo.DoTask();void DoTask()lock(this)for(int count = 1; count =4990; index-) Console.WriteLine(index); static void Main(string args)Thread objThreadOne = new Thread(
7、new ThreadStart(TaskOne);Thread objThreadTwo = new Thread(new ThreadStart(TaskTwo);objThreadOne.Start();objThreadTwo.Start();static void TaskOne() for(int count=1;count=5;count+) Console.WriteLine(count*2); 無優(yōu)先級線程,同時執(zhí)行,輸出無序.示例static void Main(string args) Thread.CurrentThread.Name = “主線程; Thread obj
8、ThreadOne = new Thread(new ThreadStart(TaskOne); objThreadOne.Name = “子線程 1; Thread objThreadTwo = new Thread(new ThreadStart(TaskTwo); objThreadTwo.Name = “子線程 2; / 這將啟動子線程 objThreadOne.Start(); objThreadTwo.Start(); objThreadTwo.Priority = ThreadPriority.Highest;將在執(zhí)行第一個線程前執(zhí)行 objThreadTwo線程安全性q 線程安
9、全性就是保護類的成員和代碼的安全,從而使它們不會同時被幾個線程中斷q 如果類中的成員和代碼受到保護而不會被幾個線程中斷,則這個類稱為線程安全的類void DoTask()lock(this).應(yīng)用程序示例演示多線程計算的應(yīng)用程序應(yīng)用程序示例/lock(this)long sum = long.Parse(txtOutput.Text);sum += result;txtOutput.Text = sum.ToString();演示輸出結(jié)果應(yīng)用程序示例思考:思考:1.為何100個線程所消耗的時間比一個線程消耗的時間要長?2.對于游戲,不同的動作(例如跑步和射擊)會真的采用線程來描述嗎? 如果不采用線程,你知道哪些方案?作業(yè)u進程和線程有什么區(qū)別?u2個線程。線程1從1循環(huán)到10000,線程2從1循環(huán)到20000,結(jié)果分別在其下控制臺中顯示。 作業(yè)u編寫一個基于Windows窗體的應(yīng)用程序,實現(xiàn)打字練習(xí)的功能,要使用多線程,在主線程里用Timer控件定時產(chǎn)生Label控件,每個Label控件顯示一個隨機產(chǎn)生的字母,每
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工程地塊土方承包施工合同
- 鄉(xiāng)區(qū)煤礦安全工作方案
- 2024年BYDBYE并條自調(diào)勻整系統(tǒng)項目資金籌措計劃書代可行性研究報告
- 2025國網(wǎng)山西省電力公司高校畢業(yè)生招聘約430人(第一批)筆試參考題庫附帶答案詳解
- 2025年上半年宜昌市直事業(yè)單位招考(181名)易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安陽市湯陰縣農(nóng)業(yè)局所屬事業(yè)單位招考易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年上半年安徽蚌埠市事業(yè)單位招聘(第二批)易考易錯模擬試題(共500題)試卷后附參考答案
- 汽車車載網(wǎng)絡(luò)控制技術(shù) 大眾邁騰汽車車載網(wǎng)絡(luò)系統(tǒng)故障檢修教案
- 2025年上半年安徽滁州市河道管理局招考人員易考易錯模擬試題(共500題)試卷后附參考答案
- 2025年臨床檢驗分析儀器項目建議書
- 北京服裝學(xué)院招聘考試題庫2024
- 2024年江蘇省南京市中考數(shù)學(xué)試卷真題(含答案解析)
- 物資裝卸培訓(xùn)課件
- DB5101-T 71-2020 成都市電動汽車充電設(shè)施 安全管理規(guī)范
- 2025年北京電子科技職業(yè)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2024年二級建造師之二建機電工程實務(wù)考試題庫含完整答案
- 團隊賦能培訓(xùn)
- 2025年廣東廣州市黃埔區(qū)第二次招聘社區(qū)專職工作人員高頻重點提升(共500題)附帶答案詳解
- 第一單元第2課《人工智能應(yīng)用》說課稿 2023-2024學(xué)年浙教版(2023)初中信息技術(shù)八年級下冊
- 2025年寫人要抓住特點
- 數(shù)字化轉(zhuǎn)型賦能制造業(yè)企業(yè)高質(zhì)量發(fā)展
評論
0/150
提交評論