哪个交叉线程调用函数更适合继承的控件?

时间:2009-11-09 14:42:46

标签: vb.net datagridview invoke multithreading

我有一个相对简单的问题,关于在继承到当前控件时调用DataGridView.Rows.Add函数的最佳方法。哪个是调用继承控件的最佳方法?在调用中直接调用它或使用类似递归函数调用它?它们似乎都产生相同的结果,添加了一行并返回了数量,但哪种效率最高?

代表:Private Delegate Function ReturnDelegate() As Object

两种方式是:
A)

Private Overloads Function AddRow() As Integer
    If InvokeRequired Then
        Return CInt(Invoke(New ReturnDelegate(AddressOf AddRow)))
    Else
        Return Rows.Add()
    End If
End Function

或者

B)

Private Function RowsAdd() As Integer
    If Me.InvokeRequired Then
        Return CInt(Me.Invoke(New ReturnDelegate(AddressOf MyBase.Rows.Add)))
    Else
        Return MyBase.Rows.Add
    End If
End Function

1 个答案:

答案 0 :(得分:0)

通常我会通过在我的一系列更新中放置BeginUpdate()EndUpdate()块来处理效率。