使用匿名函式在後台執行緒中設定窗體控制項屬性

2022-02-09 12:46:45 字數 964 閱讀 1583

在使用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則會把函式物件...