自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#異步委托之委托使用的時(shí)機(jī)淺析

開(kāi)發(fā) 后端
C#異步委托之委托使用的時(shí)機(jī)向你介紹了委托使用的場(chǎng)合和具體的應(yīng)用,希望對(duì)你了解和學(xué)習(xí)委托有所幫助。

C#異步委托之委托使用的時(shí)機(jī)是什么呢?那么讓我們開(kāi)始講述吧:

在我的印象里,委托經(jīng)常出現(xiàn)在三個(gè)場(chǎng)合(也許更多,我水平有限)。

C#異步委托之委托使用的時(shí)機(jī)1、事件調(diào)用(最常用)。

C#異步委托之委托使用的時(shí)機(jī)2、線程調(diào)用。

C#異步委托之委托使用的時(shí)機(jī)3、同步異步調(diào)用。

事件調(diào)用(最常用)是委托用的最多的地方。我們?yōu)榱耸勾翱谥g的數(shù)據(jù)可以進(jìn)行傳遞,經(jīng)常會(huì)使用窗體定義事件。最常見(jiàn)的情況是這樣的,用戶為了查詢一個(gè)客戶,在窗體B中單擊“查詢”按鈕后,彈出一個(gè)客戶查詢窗體(這里定義為A),在A中查詢出指定的結(jié)果后,單擊“選擇”按鈕,A關(guān)閉,窗體B上就獲得了查詢的客戶信息?;谶@種情況,我們一般會(huì)在A中定義一個(gè)事件,然后會(huì)在B中寫(xiě)一個(gè)當(dāng)這個(gè)事件發(fā)生后調(diào)用的方法(函數(shù))。那么怎么把A的事件和B的方法結(jié)合起來(lái)呢,這個(gè)時(shí)候就需要用到委托了。實(shí)際上,委托就是事件和方法之間的橋梁。如果大家不明白,可以看看class.designer.cs這個(gè)文件,當(dāng)我們?cè)诎粹o上選擇click按鈕事件時(shí),就會(huì)自動(dòng)創(chuàng)建一個(gè)與之相關(guān)的委托,以及事件函數(shù),例如。

  1. this.btnStart.Click +=   
  2. new System.EventHandler(this.btnStart_Click); 

線程調(diào)用時(shí)也需要使用委托。為什么呢?我們這么來(lái)考慮一下,線程主要表達(dá)模塊中的程序代碼的“執(zhí)行事實(shí)”(深入淺出MFC)。那么線程要調(diào)用執(zhí)行的函數(shù)代碼,怎么調(diào)用函數(shù)呢?這么一說(shuō),我們就知道了,委托(即函數(shù)指針)就是搭起函數(shù)和其他東西(事件、線程)之間的橋梁。所以,在線程調(diào)用時(shí)也要使用委托,通過(guò)委托連接要執(zhí)行的函數(shù)。例如:

C#異步委托之委托使用的實(shí)例應(yīng)用:

  1. class Test  
  2. {  
  3. static void Main()   
  4. {  
  5. Thread newThread =   
  6. new Thread(new ThreadStart(Work.DoWork));  
  7. newThread.Start();  
  8. }  
  9. }  
  10. class Work   
  11. {  
  12. Work() {}  
  13. public static void DoWork() {}  

以上代碼中“new Thread(new ThreadStart(Work.DoWork));”部分就是委托的部分。ThreadStart委托,它表示此線程開(kāi)始執(zhí)行時(shí)要調(diào)用的方法。所以,在線程調(diào)用時(shí)需要委托。

C#異步委托之委托使用的相關(guān)內(nèi)容就向你介紹到這里,希望對(duì)你了解和學(xué)習(xí)C#異步委托之委托使用有所幫助。

【編輯推薦】

  1. 描述C#異步Socket
  2. C# Socket異步通訊實(shí)現(xiàn)詳解
  3. C#異步編程模式IAsyncResult淺析
  4. 基于事件的C#異步編程模式淺析
  5. 對(duì)委托在C#異步委托和多線程中的理解
責(zé)任編輯:仲衡 來(lái)源: CSDN博客
相關(guān)推薦

2009-08-21 11:24:16

C#異步調(diào)用

2010-12-22 10:21:17

C#基礎(chǔ)

2009-08-20 18:11:08

C#異步委托

2011-04-22 09:14:26

C#委托

2009-08-24 15:50:23

C# 泛型C# 泛型委托

2009-10-09 09:07:40

C#委托和事件

2009-09-08 15:28:24

C#委托

2009-08-18 10:35:26

C#委托

2024-12-23 08:00:00

委托C#編程

2009-10-20 16:48:30

C#委托

2024-05-16 13:36:04

C#委托事件

2009-09-01 18:36:35

C#委托實(shí)例

2024-05-16 12:33:37

C#編程指針

2009-08-18 10:54:17

C#事件和委托

2024-10-05 00:00:35

Action?C#Func?

2024-05-30 12:24:03

C#開(kāi)發(fā)

2009-08-03 13:23:04

C#編程組件-事件-委托

2009-09-08 16:25:19

C#委托

2024-05-15 09:11:51

委托事件C#

2009-08-27 16:53:01

C#委托C#事件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)