在使用dotnetfx2.0開發winform程式時,經常需要使用後台執行緒來進行運算,並把運算的過程資料,結果資料等資訊更新顯示到視窗中。由於窗體執行緒和工作執行緒不是乙個執行緒,我們不能在工作執行緒中直接設定窗體中控制項的屬性,而需要使用control.invoke(delegate del,...)來間接呼叫。其實,可以使用乙個匿名函式很簡單的呼叫。
按照msdn上的標準作法,如果有乙個函式:
void
writemessage(
string
msg)
要在工作執行緒函式中呼叫,需要先宣告乙個委託:
public
delegate
void
writemessagehandle(
string
);public
void
threadproc(
object
obj)
));..
}其實,就為了一句: this.tbmsg.text += msg; 費了多大事呀。 其實,在c# 2.0中, 我們可以很簡單:
//先宣告這樣乙個萬用的委託
public
delegate
void
voiddelegate();
public
void
threadproc(
object
obj)
));.}
示例2:工作執行緒中,使用執行緒池進行工作,這裡還有最大併發控制喲(不知道你們如何實現最大併發):
//先宣告這樣乙個萬用的委託
public
delegate
void
voiddelegate();
public
void
threadproc(
object
obj)
));}finally
});}
}
python中匿名函式的使用
當我們在傳入函式時,有些時候,不需要顯式地定義函式,直接傳入匿名函式更方便。在python中,對匿名函式提供了有限支援。還是以map 函式為例,計算f x x2時,除了定義乙個f x 的函式外,還可以直接傳入匿名函式 list map lambda x x x,1,2,3,4,5,6,7,8,9 1...
Matlab中的匿名函式的使用
在matlab7.0以後的版本中,出現了一種新的函式型別 匿名函式,不但能夠完成原來版本中內聯函式 inline 的功能,還提供了其他更方便的功能。matlab首席科學家moler教授都推薦用匿名函式替代原來的內聯函式。我最近學習了一些有關匿名函式的內容,現在總結一下 1,匿名函式的基本用法。han...
Python中lambda匿名函式的使用
python lambda是在python中使用lambda來建立匿名函式,而用def建立的方法是有名稱的,除了從表面上的方法名不一樣外,python lambda還有哪些和def不一樣呢?1 python lambda會建立乙個函式物件,但不會把這個函式物件賦給乙個識別符號,而def則會把函式物件...