




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第一章1. 簡(jiǎn)述什么是C/S模式,什么是B/S模式,C/S和B/S的優(yōu)缺點(diǎn)。答:胖客戶端應(yīng)用程序編程架構(gòu),其主要工作都在客戶端運(yùn)行,這樣可以充分利用本地計(jì)算機(jī)的性能優(yōu)勢(shì)。在分布式的基礎(chǔ)上進(jìn)一步抽象出來的編程模型,缺點(diǎn)是需要在本機(jī)安裝客戶端軟件。C/S將一個(gè)網(wǎng)絡(luò)事務(wù)處理分為兩部分:客戶端(Client,也叫客戶機(jī))用于為用戶提供操作,同時(shí)向網(wǎng)絡(luò)提供請(qǐng)求服務(wù)的接口;服務(wù)端(Server)負(fù)責(zé)接收并處理客戶端發(fā)出的服務(wù)請(qǐng)求,并將服務(wù)處理結(jié)果返回給客戶端。B/S模式是在分布式系統(tǒng)基礎(chǔ)上抽象出來的網(wǎng)絡(luò)通信模型;B/S只使用HTTP進(jìn)行通信。優(yōu)點(diǎn)是單臺(tái)計(jì)算機(jī)可以訪問任何Web服務(wù)器,缺點(diǎn)是B/S模式有沙盒
2、限制。2. C/S客戶端一般用WPF,服務(wù)端用WCF實(shí)現(xiàn)。企業(yè)內(nèi)部網(wǎng)用https來訪問3. TCP/IP網(wǎng)絡(luò)模型有四層:應(yīng)用層,傳輸層,網(wǎng)際層,網(wǎng)絡(luò)接口層4. 什么是套接字?套接字有哪幾種類型? 答:套接字是支持TCP/IP網(wǎng)絡(luò)通信的基本操作單元,是不同主機(jī)間的進(jìn)程進(jìn)行通信的端點(diǎn)。在一個(gè)套接字實(shí)例中,既保存了本機(jī)的IP地址和端口,也保存了對(duì)方的IP地址和端口,同時(shí)也保存了雙方通信采用的網(wǎng)絡(luò)協(xié)議等信息。套接字有3種類型:流式套接字(TCP)、數(shù)據(jù)報(bào)套接字(UDP)和原始套接字(IP)。5. IP地址轉(zhuǎn)換與域名解析相關(guān)的類都在System.Net命名空間下。IP:在因特網(wǎng)中,每臺(tái)聯(lián)網(wǎng)的主機(jī)都要有一
3、個(gè)在全世界范圍內(nèi)唯一的標(biāo)識(shí),該標(biāo)識(shí)稱為IP地址。多播地址在:55之間。IP地址由網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)構(gòu)成。端口號(hào):用于區(qū)別主機(jī)上的那個(gè)進(jìn)程,而引入的新的地址空間,叫端口號(hào)。6. 提供網(wǎng)際協(xié)議IP地址的IPAddress類;包含IP地址和端口號(hào)的IPEndPoint類;為Internet或Intranet主機(jī)提供信息容器的IPHostEntry類。IPHostEntry類將一個(gè)域名系統(tǒng)(DNS)的主機(jī)名與一組別名和一組匹配的IP地址關(guān)聯(lián)。該類一般和Dns類一起使用。 IPAddress ips =Dns.GetHostEntry(“
4、”).AddressList;DNS類的IPAddress GetHostAddresses(string hostNameOrAddress);方法若是主機(jī)名,則返回此主機(jī)的所有IP若hostNameOrAddress是IP地址,則直接返回此地址;若hostNameOrAddress是空字符串,則返回本地主機(jī)的所有IPv4和IPv6地址。DNS類的GetHostEntry(String s):當(dāng)參數(shù)為空字符串時(shí),返回本地主機(jī)的IPHostEntry實(shí)例。7. 對(duì)網(wǎng)絡(luò)流量和本機(jī)網(wǎng)絡(luò)地址等信息的訪問類都在System.Net.NetworkInformation命名空間下。網(wǎng)卡信息由Networ
5、kInterface和IPIterfaceProperties類得到(實(shí)例都只能用靜態(tài)方法得到實(shí)例),網(wǎng)絡(luò)流量用IPGlobalProprieties(靜態(tài)方法獲得實(shí)例).第二章1數(shù)字墨跡有哪些用途?一般的WPF元素是否具有數(shù)字墨跡相關(guān)的事件? 答:利用數(shù)字墨跡可以在計(jì)算機(jī)、手機(jī)、平板電腦、車載導(dǎo)航儀等各種設(shè)備上繪制墨跡形狀,還可以利用它實(shí)現(xiàn)與觸屏和手寫應(yīng)用相關(guān)的功能。所有WPF元素都支持?jǐn)?shù)字墨跡功能。2. Ribbon控件主要包括以下子項(xiàng):QuickAccessToolBar(快速訪問工具欄),ApplicationMenu(應(yīng)用程序菜單),RibbonTab(選項(xiàng)卡)。3. 觸筆(Styl
6、us)在畫板上移動(dòng)時(shí)顯示的痕跡叫墨跡筆畫(Stroke),簡(jiǎn)稱筆畫。(System.Windows.Ink)。其GUID一般用Guid.NewGuid()方法獲取4. 靜態(tài)呈現(xiàn)是指將墨跡添加到控件之后再顯示墨跡。添加方式有:通過觸筆添加、從剪貼板中粘貼、從文件中加載。靜態(tài)呈現(xiàn)墨跡的辦法是自定義從Stroke類繼承的類,并且在自定義類中重寫引發(fā)觸筆事件的DrawCore方法。動(dòng)態(tài)呈現(xiàn)是指在移動(dòng)觸點(diǎn)的過程中同時(shí)呈現(xiàn)墨跡。是將自定義墨跡控件的DynamicRenderer屬性設(shè)置為自定義的從DynamicRenderer類繼承的類。并重寫OnDraw方法。5. 制作自定義墨跡畫板的主要設(shè)計(jì)步驟如下。
7、1. 創(chuàng)建一個(gè)從InkCanvas派生的類。2. 將自定義的DynamicRenderer分配給InkCanvas.DynamicRenderer屬性。3. 重寫OnStrokeCollected方法。在此方法中,移除已添加到InkCanvas中的原始筆畫,然后創(chuàng)建一個(gè)自定義筆畫,將其添加到Strokes屬性中。4. 最后再使用包含該自定義筆畫的新InkCanvasStrokeCollectedEventArgs調(diào)用基類相應(yīng)的方法。在OnStylusMove事件中,每次自動(dòng)收集到的墨跡點(diǎn)的集合中只有兩個(gè)點(diǎn):一個(gè)是上次收集的集合中的最后一個(gè)點(diǎn),一個(gè)是當(dāng)前點(diǎn)。第三章1. 簡(jiǎn)要回答下列問題。 (1)
8、進(jìn)程和線程有什么區(qū)別?為什么要用多線程?多線程適用于哪種場(chǎng)合?(2)前臺(tái)線程和后臺(tái)線程有什么區(qū)別和聯(lián)系?如何判斷一個(gè)線程屬于前臺(tái)線程還是后臺(tái)線程?如何將一個(gè)線程設(shè)置為后臺(tái)線程? 答:(1)進(jìn)程是正在執(zhí)行的程序,線程是某個(gè)進(jìn)程中的一個(gè)或多個(gè)執(zhí)行流。進(jìn)程是線程的容器,至少有一個(gè)主線程,線程的提出是為了適應(yīng)程序內(nèi)部的并行。多線程可讓多個(gè)任務(wù)同時(shí)執(zhí)行。當(dāng)執(zhí)行需要較長(zhǎng)時(shí)間才能完成的連續(xù)操作時(shí),或者等待網(wǎng)絡(luò)或其他I/O設(shè)備相應(yīng)時(shí),都可以使用多線程技術(shù)。(2)一個(gè)線程要么是前臺(tái)線程要么是后臺(tái)線程。兩者的區(qū)別是:后臺(tái)線程不會(huì)影響進(jìn)程的終止,而前臺(tái)線程則會(huì)影響進(jìn)程的終止。只有當(dāng)屬于某個(gè)進(jìn)程的所有前臺(tái)線程都終止后
9、,公共語言運(yùn)行庫才會(huì)結(jié)束該進(jìn)程,而所有的后臺(tái)線程也都會(huì)立刻停止。用Thread對(duì)象創(chuàng)建的線程默認(rèn)都是前臺(tái)線程,線程池中的以及托管線程都是后臺(tái)線程。3. System.Diagnostics命名空間下的Process類提供了在操作系統(tǒng)級(jí)別對(duì)進(jìn)程進(jìn)行管理的各種屬性和方法。4.啟動(dòng)進(jìn)程: Process p = new Process(); /首先需要?jiǎng)?chuàng)建Process類的一個(gè)實(shí)例 p.StartInfo.FileName = Notepad.exe;/通過StartInfo屬性指定要運(yùn)行的應(yīng)用程序名稱以及傳遞的參數(shù) p.StartInfo.Arguments = argument;/要打開的文本文
10、件 p.StartInfo.WindowStyle = ProcessWindowStyle.Normal;/帶圖形界面的設(shè)置 p.Start(); /啟動(dòng)進(jìn)程 終止進(jìn)程有兩種方式:Kill和CloseMainWindow,Kill方法用于強(qiáng)行終止進(jìn)程,是終止沒有圖形化界面進(jìn)程的唯一方法。Kill方法是異步執(zhí)行的,調(diào)用WaitForExit方法等待進(jìn)程退出,或檢查HasExited屬性以確定進(jìn)程是否退出。CloseMainWindow()方法通過向主窗口發(fā)送關(guān)閉消息來關(guān)閉進(jìn)程。此兩種方法都只能對(duì)本機(jī)進(jìn)程進(jìn)行操作。WaitForInputIdle方法僅適用于具有用戶界面的進(jìn)程,它可以使Proce
11、ss等待關(guān)聯(lián)進(jìn)程進(jìn)入空閑狀態(tài)。EnableRaisingEvents屬性用于獲取或設(shè)置在進(jìn)程終止時(shí)是否應(yīng)引發(fā)Exited事件。WaitForExit方法可設(shè)置等待關(guān)聯(lián)進(jìn)程退出的時(shí)間,并在該段時(shí)間結(jié)束前或該進(jìn)程退出前,阻止當(dāng)前線程執(zhí)行。5. 獲取進(jìn)程信息Process.GetProcesses(string IP)獲取指定主機(jī)的進(jìn)程,為空時(shí)是本地主機(jī)的。Process靜態(tài)的GetProcessById(int ID)方法會(huì)自動(dòng)創(chuàng)建Process對(duì)象,并將其與本地計(jì)算機(jī)上的進(jìn)程相關(guān)聯(lián),同時(shí)將進(jìn)程Id傳遞給該P(yáng)rocess對(duì)象。Process靜態(tài)的GetProcessesByName(string
12、processName)方法返回一個(gè)包含所有關(guān)聯(lián)進(jìn)程的數(shù)組,得到該數(shù)組后,可以再依次查詢這些進(jìn)程中的每一個(gè)標(biāo)識(shí)符,從而得到與該進(jìn)程相關(guān)的更多信息。每次進(jìn)程變動(dòng)都需調(diào)用RefreshProcessInfo()方法。6. System.Threading命名空間下的Thread用于管理線程。7. 主線程和輔助線程:當(dāng)程序作為進(jìn)程來運(yùn)行時(shí),系統(tǒng)都會(huì)為該進(jìn)程創(chuàng)建一個(gè)默認(rèn)的線程,該線程稱為主線程。或者說,主線程用于執(zhí)行Main方法中的代碼,當(dāng)Main方法返回時(shí),主線程也自動(dòng)終止。在一個(gè)進(jìn)程中,除了主線程之外的其他線程都稱為輔助線程。8. 通過Thread對(duì)象可創(chuàng)建一個(gè)單獨(dú)的線程,Thread threa
13、d1 = new Thread();創(chuàng)建一個(gè)線程thread1,并自動(dòng)通過相應(yīng)的委托執(zhí)行用”指定的方法。有兩種委托:ThreadStart系統(tǒng)自定義的委托,可執(zhí)行無返回值的無參函數(shù)。ThreadStart a = new ThreadStart(test);/public void test(); Thread t = new Thread(a); t.Start(); /等價(jià)于 Thread t = new Thread(test);t.Start();還有一個(gè)系統(tǒng)自定義委托是ParameterizedThreadStart的委托,所執(zhí)行的方法是無返回值的參數(shù)為Object的函數(shù)。線程啟動(dòng)即
14、Start方法,若線程執(zhí)行的委托是無參的則為Start().若是有參數(shù)的則為Start(Object obj)。終止或取消線程:1. 第1種方法是先設(shè)置一個(gè)修飾符為volatile的布爾型的字段表示是否需要正常結(jié)束該線程,稱為終止線程。2. 第2種方法是在其他線程中調(diào)用Thread實(shí)例的Abort方法終止當(dāng)前線程,該方法的最終效果是強(qiáng)行終止該線程的執(zhí)行,屬于非正常終止的情況,稱為取消線程的執(zhí)行休眠線程:調(diào)用Thread.Sleep(參數(shù))的線程自己阻塞。9. 什么是線程池?使用線程池有什么好處?線程池適用于執(zhí)行時(shí)間短,任務(wù)量大的場(chǎng)合。線程池是在后臺(tái)執(zhí)行任務(wù)的線程集合,好處有:如當(dāng)某個(gè)線程無法進(jìn)
15、入線程池執(zhí)行時(shí)先將其放入等待隊(duì)列,自動(dòng)決定用哪個(gè)處理器執(zhí)行線程池中的某個(gè)線程,自動(dòng)調(diào)節(jié)這些線程執(zhí)行時(shí)的負(fù)載平衡問題等。另外,線程池總是在后臺(tái)異步處理請(qǐng)求的任務(wù),而不會(huì)占用主線程,也不會(huì)延遲主線程中后續(xù)請(qǐng)求的處理。線程池的基本特征:1. 托管線程池中的線程都是后臺(tái)線程。2. 添加到線程池中的任務(wù)不一定會(huì)立即執(zhí)行。3. 線程池可自動(dòng)重用已創(chuàng)建過的線程。一旦池中的某個(gè)線程完成任務(wù),它將返回到等待線程隊(duì)列中,等待被再次使用,而不是直接銷毀它。4. 開發(fā)人員可設(shè)置線程池的最大線程數(shù)。5. 從.NET框架4.0開始,線程池中的線程都是利用多核處理技術(shù)來實(shí)現(xiàn)的。10. 向線程池中添加工作項(xiàng):直接利用Thre
16、ad.QueueUserWorkItem(new WaitCallback()來添加有參數(shù)無返回值的函數(shù)。11. 什么是同步?什么是異步?答:執(zhí)行某語句時(shí),在該語句完成之前不會(huì)執(zhí)行其后面的代碼,這種執(zhí)行方式稱為同步執(zhí)行。另一種是執(zhí)行某語句時(shí),不管該語句是否完成,都會(huì)繼續(xù)執(zhí)行其后面的語句,這種執(zhí)行方式叫異步執(zhí)行。12. 為什么需要同步?C#提供了什么語句可以簡(jiǎn)單地實(shí)現(xiàn)代碼同步?答:當(dāng)并行執(zhí)行的多個(gè)線程同時(shí)訪問某些資源時(shí),必須考慮如何讓多個(gè)線程保持同步。同步的目的是為了防止多個(gè)線程同時(shí)訪問某些資源時(shí)出現(xiàn)死鎖和爭(zhēng)用情況。C#提供的lock語句可以簡(jiǎn)單地實(shí)現(xiàn)代碼同步。13. 實(shí)現(xiàn)資源同步的方式:多線程
17、實(shí)現(xiàn)資源同步主要通過加鎖或原子操作來實(shí)現(xiàn)。1. 用volatile修飾符鎖定公共或私有字段,利用該修飾符可直接訪問內(nèi)存中的字段,這樣做的好處是所有處理器都可以訪問該字段最新的值。2. 用Interlocked類提供的靜態(tài)方法鎖定局部變量,通過加鎖和解鎖提供了原子級(jí)別的靜態(tài)操作方法。3. 用lock語句鎖定代碼塊(了解:lock語句的實(shí)現(xiàn)原理是進(jìn)入臨界區(qū)之前先鎖定某個(gè)私有對(duì)象(聲明為private的對(duì)象),然后再執(zhí)行臨界區(qū)中的代碼,當(dāng)代碼塊中的語句執(zhí)行完畢后,再自動(dòng)解除該鎖)。不允許鎖定聲明為Public為了解決死鎖以及異步執(zhí)行過程中的同步問題,WPF中的每個(gè)元素(包括根元素)都有一個(gè)Dispa
18、tcher屬性。textBlock1.Dispatcher.Invoke()=textBlock1.text=”1”; );14. 什么叫應(yīng)用程序域?應(yīng)用程序域和進(jìn)程有什么區(qū)別和聯(lián)系?和線程呢?答:一個(gè)主進(jìn)程中,可包含一個(gè)或多個(gè)“子進(jìn)程”,每個(gè)“子進(jìn)程”所占用的內(nèi)存范圍(或者叫邊界)都稱為一個(gè)應(yīng)用程序域;一個(gè)進(jìn)程既可以只包含一個(gè)應(yīng)用程序域,也可以同時(shí)包含多個(gè)相互隔離的應(yīng)用程序域。多進(jìn)程是在操作系統(tǒng)級(jí)別使用的功能,資源消耗較大,細(xì)節(jié)控制復(fù)雜;應(yīng)用程序域是在應(yīng)用程序級(jí)別使用的功能,比直接用多進(jìn)程來實(shí)現(xiàn)進(jìn)程管理速度快、資源消耗少而且更安全,是輕量級(jí)的進(jìn)程管理。應(yīng)用程序域和線程的關(guān)系:1. 應(yīng)用程序域
19、為安全性、版本控制、可靠性和托管代碼的卸載形成隔離邊界,執(zhí)行應(yīng)用程序時(shí),所有托管代碼均加載到一個(gè)應(yīng)用程序域中,由一個(gè)或多個(gè)托管線程來運(yùn)行。2. 應(yīng)用程序域和線程之間不具有一對(duì)一的相關(guān)性。3. 應(yīng)用程序域之間是相互隔離的,一個(gè)應(yīng)用程序域無法直接訪問另一個(gè)應(yīng)用程序域的資源。15. 什么時(shí)候使用應(yīng)用程序域?答:1. 當(dāng)需要?jiǎng)討B(tài)擴(kuò)展程序的功能時(shí),可將其他進(jìn)程(.dll文件或者.exe文件)中的全部或部分功能“嵌入”到當(dāng)前應(yīng)用程序進(jìn)程界面中,使其看起來就像是同一個(gè)應(yīng)用程序一樣(多進(jìn)程則無法做到這一點(diǎn)),而且這種實(shí)現(xiàn)方式比用多進(jìn)程實(shí)現(xiàn)的運(yùn)行速度快。2.在同一個(gè)進(jìn)程內(nèi),實(shí)現(xiàn)不同域之間的通信比用多進(jìn)程實(shí)現(xiàn)簡(jiǎn)單
20、。3.在安全性方面,用應(yīng)用程序域來實(shí)現(xiàn)比用多進(jìn)程來實(shí)現(xiàn)更有保障第四章l 1(記)C#中的字符和字符串默認(rèn)采用的都是Unicode編碼。Encoding類位于System.Text命名空間下。(了解)使用Encoding類靜態(tài)的GetEncodings方法可得到一個(gè)包含所有編碼的EncodingInfo類型的數(shù)組。也可以利用Encoding類靜態(tài)的GetEndcoing方法來獲取指定的編碼,得到Encoding對(duì)象后,即可利用HeaderName屬性獲取編碼名稱,利用EncodingName屬性獲取編碼描述。l 2. public static byte Convert( Encoding sr
21、cEncoding, /源編碼 Encoding dstEncoding, /目標(biāo)編碼 byte bytes /待轉(zhuǎn)換的字節(jié)數(shù)組)3. 將字符序列轉(zhuǎn)換為字節(jié)序列的過程叫編碼,GetBytes()。將字節(jié)序列轉(zhuǎn)換為字符序列的過程叫解碼,GetString()。4. 對(duì)數(shù)據(jù)流的操作有3種:逐字節(jié)順序?qū)懭耄▽?shù)據(jù)從內(nèi)存緩沖區(qū)傳輸?shù)酵獠吭矗?逐字節(jié)順序讀?。▽?shù)據(jù)從外部源傳輸?shù)絻?nèi)存緩沖區(qū));隨機(jī)讀寫(從某個(gè)位置開始逐字節(jié)順序讀或?qū)懀?5. FileStream(string path,FileMode mode,FileAccess access);FileMode.Append只能同F(xiàn)ileAcce
22、ss.Write使用;另外一種構(gòu)造方法是File.OpenRead(String path); 創(chuàng)建僅讀取的文件流.6. (MemoryStream)內(nèi)存流:該對(duì)象的CanSeek屬性值默認(rèn)為true程序中可通過Position屬性獲取內(nèi)存流的當(dāng)前位置。內(nèi)存流的容量可自動(dòng)增長(zhǎng)。7. NetworkStream僅支持面向連接的套接字。注意以下幾點(diǎn):a. 通過DataAvailable屬性,可查看緩沖區(qū)中是否有數(shù)據(jù)等待讀出.b. 網(wǎng)絡(luò)流沒有當(dāng)前位置的概念,不支持對(duì)數(shù)據(jù)流的查找和隨機(jī)訪問,NetworkStream對(duì)象的CanSeek屬性始終返回false.c. 讀取Position屬性和調(diào)用See
23、k方法時(shí),都會(huì)引發(fā)NotSupportedException異常.8. 前三種流都在System.IO下,加密流(CrytoStream)在System.Security.Cryptography下;public CryptoStream(Stream stream, /對(duì)其執(zhí)行加密轉(zhuǎn)換的流ICryptoTransform transform, /要對(duì)流執(zhí)行的加密轉(zhuǎn)換CryptoStreamMode mode /CryptoStreamMode枚舉,有Read和Write兩種);9. StreamReader和StreamWriterNetworkStream、MemoryStream和Fil
24、eStream實(shí)現(xiàn)思路都是先將待寫入的數(shù)據(jù)轉(zhuǎn)化為字節(jié)序列,然后再進(jìn)行讀寫,對(duì)于文本數(shù)據(jù)來說操作不方便。所以用StreamReader和StreamWriter來簡(jiǎn)化。StremReader sr = new StremReader (前三種流對(duì)象)。別忘記Close或用using。10. 為什么要對(duì)字符進(jìn)行編碼和解碼?答:在網(wǎng)絡(luò)通信中,很多情況下通信雙方傳達(dá)的都是字符信息。但是,字符信息并不能直接從網(wǎng)絡(luò)的一端傳遞到另一端,這些字符信息首先需要被轉(zhuǎn)換成一個(gè)字節(jié)序列,然后才能在網(wǎng)絡(luò)中傳輸。因此,發(fā)送方需要進(jìn)行編碼,相應(yīng)的接收方就要執(zhí)行解碼。3簡(jiǎn)述對(duì)稱加密(私鑰加密)和不對(duì)稱加密(公鑰加密)的特點(diǎn)及
25、實(shí)現(xiàn)原理。對(duì)稱加密:(1)加密和解密數(shù)據(jù)使用同一個(gè)密鑰;(2)私鑰算法以塊為單位加密數(shù)據(jù),一次加密一個(gè)數(shù)據(jù)塊,因此支持?jǐn)?shù)據(jù)流。常見的有:DES,RC2,SHA-1,AES; 實(shí)現(xiàn)由CiperMode.CBC,密鑰和IV對(duì)稱加密算法的優(yōu)點(diǎn):保密強(qiáng)度高,加、解密速度快,適合加密大量數(shù)據(jù)。對(duì)稱加密的缺點(diǎn):通信雙方使用相同的密鑰和IV加密和解密,發(fā)送方需要先將密鑰和IV傳遞給接收方。如果攻擊者截獲了密鑰和IV,也就等于知道了如何解密數(shù)據(jù)。不對(duì)稱加密:(1)使用一個(gè)需要保密的私鑰和一個(gè)可以對(duì)任何人公開的公鑰。用公鑰加密的數(shù)據(jù)只能用私鑰解密,反之,用私鑰加密的數(shù)據(jù)只能用公鑰解密;(2)公鑰加密算法使用長(zhǎng)度
26、固定的緩沖區(qū),因此無法使用流。RSA,ECC不對(duì)稱加密的優(yōu)點(diǎn):更不容易被攻擊。不對(duì)稱加密的缺點(diǎn):由于無法使用流,因此不適合加密大量數(shù)據(jù)。11. 來確保密鑰存儲(chǔ)的安全性,這就是密鑰容器的用途。12. 什么是數(shù)字簽名?數(shù)字簽名有什么用途? (這題了解)答:在應(yīng)用程序中,可以利用數(shù)字簽名實(shí)現(xiàn)數(shù)據(jù)身份驗(yàn)證和數(shù)據(jù)完整性驗(yàn)證。數(shù)據(jù)身份驗(yàn)證是為了驗(yàn)證數(shù)據(jù)是不是持有私鑰的人發(fā)送的;數(shù)據(jù)完整性驗(yàn)證則用于驗(yàn)證數(shù)據(jù)在傳輸過程中是否被修改過。數(shù)字簽名的用途:通過Internet下載文件后,驗(yàn)證下載的文件是否和原始文件完全相同。換言之,如果通信雙方希望確保信息是來自對(duì)方而不是來自第三方,需要使用數(shù)字簽名進(jìn)行身份驗(yàn)證。另
27、外,數(shù)字簽名還可以防止特定一方否認(rèn)曾發(fā)送過的信息。第五章1. 從技術(shù)實(shí)現(xiàn)的角度看,并行是利用多線程來實(shí)現(xiàn)的,異步利用委托,并發(fā)數(shù)據(jù)利用專門的并發(fā)集合來實(shí)現(xiàn)。2. 任務(wù)用System.Threading.Tasks命名空間下的Task(無返回值)和Task有返回值類來描述。Task.Delay方法只能用于異步等待,等待過程中不會(huì) 界面流暢性。Thread.Sleep如果不通過異步方式來執(zhí)行,會(huì)影響UI操作,休眠期間界面有停頓現(xiàn)象。3. Action和Func委托有什么不同?Action委托封裝了不帶返回值的方法(有016個(gè)輸入?yún)?shù),返回類型為void),F(xiàn)unc委托封裝了帶返回值的方法(有016
28、個(gè)輸入?yún)?shù),返回類型為TResult)。 注意:在Action和Func的參數(shù)中不能使用out和ref4 異步編程的實(shí)現(xiàn)方式有:1.傳統(tǒng)的異步編程模型(APM)2. 基于事件的異步設(shè)計(jì)模式(EAP)3. 基于任務(wù)的異步模式TAP4.改進(jìn)的TAP5. 有幾種創(chuàng)建任務(wù)的方式? 有4種方式。(1)利用Task.Run方法隱式創(chuàng)建和執(zhí)行任務(wù);此種方式表示使用默認(rèn)的任務(wù)調(diào)度程序在線程池中通過后臺(tái) 執(zhí)行指定的任務(wù)。(2)利用async和await關(guān)鍵字隱式創(chuàng)建異步任務(wù)在當(dāng)前線程中異步執(zhí)行指定方法;(3)利用WPF控件的調(diào)度器隱式創(chuàng)建和執(zhí)行任務(wù);(4)通過顯式調(diào)用Task或Task的構(gòu)造函數(shù)創(chuàng)建任務(wù)6. 在
29、WPF應(yīng)用程序中有幾種可用的定時(shí)器? 有3種。(1)System.Timers.Timer類;(2)System.Windows.Threading.DispatcherTimer類;(3)System.Threading.Timer類。7. 僅包含async和await關(guān)鍵字的異步方法與用Task.Run調(diào)用的異步方法有和不同?async和await關(guān)鍵字是C# 5.0提供的功能,僅包含async和await關(guān)鍵字的異步方法不會(huì)創(chuàng)建新線程,它只是表示在當(dāng)前線程中異步執(zhí)行指定的任務(wù)。而Task.Run方法是.NET框架4.5提供的功能,它會(huì)在線程池中用單獨(dú)的線程執(zhí)行某個(gè)任務(wù)。8. 把普通方法和
30、異步方法作為任務(wù)來執(zhí)行時(shí),調(diào)用方法有何不同?普通方法要用Task.Run方法去調(diào)用,或者用Task、Task類的構(gòu)造函數(shù)顯示創(chuàng)建Task實(shí)例,然后再啟動(dòng)。異步方法不需要用Task.Run方法去調(diào)用。9. 簡(jiǎn)述實(shí)現(xiàn)任務(wù)的取消功能的機(jī)制。答:System.Threading.CancellationTokenSource用于創(chuàng)建取消通知,稱為取消源。System.Threading.CancellationToken結(jié)構(gòu)用于傳播應(yīng)取消操作的通知,稱為取消令牌。調(diào)用任務(wù)的代碼在分配任務(wù)前,可先用CancellationTokenSource類創(chuàng)建一個(gè)取消源。在調(diào)用任務(wù)的代碼中,可通過取消源的Cancel方法發(fā)出取消通知,該方法會(huì)將每個(gè)取消令牌副本上的IsCancellationRequested屬性都設(shè)置為true。執(zhí)行任務(wù)的方法接收到取消通知后,可以終止執(zhí)行。、4簡(jiǎn)要回答用WCF編寫TCP服務(wù)器端和客戶端程序的一般步驟。【參考解答】使用WCF編寫TC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大數(shù)據(jù)助力訂單農(nóng)業(yè)精準(zhǔn)化供應(yīng)鏈管理
- 2025至2030迷你酒吧行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 江西省撫州市宜黃縣2024年九上化學(xué)期末調(diào)研試題含解析
- 福建省寧德市2025屆九年級(jí)化學(xué)第一學(xué)期期末質(zhì)量檢測(cè)試題含解析
- 江蘇省南京市六合區(qū)2025屆數(shù)學(xué)八上期末考試試題含解析
- 貴州省從江縣2025屆數(shù)學(xué)八年級(jí)第一學(xué)期期末質(zhì)量跟蹤監(jiān)視試題含解析
- 人才派遣代理招聘服務(wù)合同
- 蘇州園林教學(xué)設(shè)計(jì)
- 鄉(xiāng)村衛(wèi)生院網(wǎng)絡(luò)信息化建設(shè)與升級(jí)方案
- 綠色環(huán)保型自修復(fù)環(huán)氧樹脂產(chǎn)品的開發(fā)
- 廣州市藝術(shù)中學(xué)招聘教師考試真題2024
- 工業(yè)自動(dòng)化設(shè)備保修及維修管理措施
- 期末作文預(yù)測(cè)外研版七年級(jí)英語下冊(cè)
- 2025-2030中國(guó)兒童魚油行業(yè)銷售動(dòng)態(tài)及競(jìng)爭(zhēng)策略分析報(bào)告
- 統(tǒng)編版五年級(jí)升六年級(jí)語文暑期銜接《課外閱讀》專項(xiàng)測(cè)試卷及答案
- 小小理財(cái)家課件
- DB43-T 2622-2023 醫(yī)療導(dǎo)管標(biāo)識(shí)管理規(guī)范
- 譯林版一年級(jí)下冊(cè)全冊(cè)英語知識(shí)點(diǎn)梳理
- 案場(chǎng)物業(yè)制度管理制度
- 護(hù)理事業(yè)十五五發(fā)展規(guī)劃(2026-2030)
- CJ/T 316-2009城鎮(zhèn)供水服務(wù)
評(píng)論
0/150
提交評(píng)論