C#一行代碼實現(06)跨線程獲取控件值,結合BeginInvoke和EndInvoke使用,以DataGridView為例
- 2020 年 10 月 25 日
- 筆記
- C#一行代碼實現
主要功能
- 跨線程獲取控件值,以
DataGridView為例,結合BeginInvoke和EndInvoke使用
一行代碼
object cellValue = dataGridView.ExInvokeGetCellValue(0,1);
代碼封裝
/// <summary>
/// DataGridView獲取單元格值
/// </summary>
/// <param name="dataGridView"></param>
/// <param name="rowIndex"></param>
/// <param name="colIndex"></param>
/// <returns></returns>
public static object ExInvokeGetCellValue(this DataGridView dataGridView, int rowIndex, int colIndex)
{
Func<DataGridView, int, int, object> func = new Func<DataGridView, int, int, object>((gridView, rIndex, cIndex) => gridView.Rows[rIndex].Cells[cIndex].Value);
if (dataGridView.InvokeRequired)
{
IAsyncResult ia = dataGridView.BeginInvoke(func, new object[]
{
dataGridView,
rowIndex,
colIndex
});
return dataGridView.EndInvoke(ia);
}
return func.Invoke(dataGridView, rowIndex, colIndex);
}
聲明