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);
}
声明