我不知道如何接近冠軍這個問題,所以我會介紹我的情況,希望我是清楚我的疑惑。 (如果有一個爲標題更好的建議,我會改變它)控制爲參數的委託方法
在過去的幾天裏,我閱讀關於圍繞多線程和GUI使用場景控制修改。 我的問題涉及將控件作爲我的委託和方法的參數進行更改。 比方說,我有一個ListView1的,我想一個組添加到它(這是一個簡單的經驗,並擁有幾個代碼)
據我看到的例子,做它的方式是
Private Delegate Sub ResultsAddGroup_Delegate(ByVal FondsGroup As ListViewGroup)
Private Sub ResultsAddGroup(ByVal FondsGroup As ListViewGroup)
If Me.ListView1.InvokeRequired Then
Dim d As New ResultsAddGroup_Delegate(AddressOf ResultsAddGroup)
Dim ParamArgs() As Object = New Object() {FondsGroup}
Me.ListView1.BeginInvoke(d, ParamArgs)
Else
Me.ListView1.Groups.Add(FondsGroup)
End If
End Sub
我通常喜歡通過控制作爲一個參數,以保持代碼清晰和方法或函數從所述特定控制物體。 如果我想通過ListView控件作爲參數針對上述案例,像這樣:
Private Delegate Sub ResultsAddGroup_Delegate(ByVal LView As ListView, ByVal FondsGroup As ListViewGroup)
Private Sub ResultsAddGroup(ByVal LView As ListView, ByVal FondsGroup As ListViewGroup)
If LView.InvokeRequired Then
Dim d As New ResultsAddGroup_Delegate(AddressOf ResultsAddGroup)
Dim ParamArgs() As Object = New Object() {LView, FondsGroup}
LView.BeginInvoke(d, ParamArgs)
Else
LView.Groups.Add(FondsGroup)
End If
End Sub
會代表什麼樣的問題多線程和控制不斷變化的目的是什麼? 如果是這樣,有沒有另一種方法來做到這一點,而不指定控制?
另一方面,是否有任何問題,我通常做我的方法(如上所述,通過傳遞控制參數)?
謝謝
是的,我相信是這樣,但是因爲我不確定,所以我希望得到比我更多經驗的人的意見。 關於代碼,這是一個複製/粘貼錯誤,您可以從第二塊代碼中看到。 感謝您的輸入。 – Deltint