Winform多线程使用委托操作控件

Posted 还是上天吧

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Winform多线程使用委托操作控件相关的知识,希望对你有一定的参考价值。

随手记录

private void barLargeButtonItem5_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
{
//重新加载数据
Thread DataThread = new Thread(new ThreadStart(LoadData));
DataThread.IsBackground = true;
DataThread.Start();
}

#region 加载数据
public void LoadData()
{
SetMarqueeProgress(true);

DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn() { ColumnName = "编号" });
dt.Columns.Add(new DataColumn() { ColumnName = "城市" });

SetDgvDataSource(dt);
SetMarqueeProgress(false);
}
#endregion

 

#region 委托操作
/// <summary>
/// 显示隐藏等待条
/// </summary>
/// <param name="Visible"></param>
delegate void mpDelegate(bool Visible);
private void SetMarqueeProgress(bool Visible)
{
if (marqueeProgressBarControl1.InvokeRequired)
{
marqueeProgressBarControl1.Invoke(new mpDelegate(SetMarqueeProgress), Visible);
}
else
{
marqueeProgressBarControl1.Visible = Visible;
}
}

/// <summary>
/// 绑定数据
/// </summary>
/// <param name="table"></param>
delegate void dgvDelegate(DataTable table);
private void SetDgvDataSource(DataTable table)
{
if (PointDataGrid.InvokeRequired)
{
PointDataGrid.Invoke(new dgvDelegate(SetDgvDataSource), table);
}
else
{
PointDataGrid.DataSource = table;
}
}
#endregion

以上是关于Winform多线程使用委托操作控件的主要内容,如果未能解决你的问题,请参考以下文章

WinForm 中如何使用后台线程来操作UI

winform 多线程

C#WinForm在新线程中动态创建控件时,gif图动不动

WinformWPF 多线程访问控件

C# Winform 多线程异步委托进度条

winform中如何在多线程中更新UI控件--ListView实时显示执行信息