(1) textbox button等等控件 跨线程 使用 Action 函数 = delegate 建立 委托跨线程的方式。
Action asynsBtnDelegate = delegate
{
textBox_EEPROMInfo.AppendText(SumStr);
};
this.textBox_EEPROMInfo.Invoke(asynsBtnDelegate);
(2)还有这种建立 委托卡线程的方式。
private delegate void AddRemindDelegate(string value);
private void AddRemind(string value)
{
if (this.InvokeRequired)
{
AddRemindDelegate d = new AddRemindDelegate(AddRemind);
this.Invoke(d, value);
}
else
{
// this.listBox_remind;
// if (gStopDisp == 0)
{
listBox_remind.Items.Add(value);
listBox_remind.SelectedIndex = listBox_remind.Items.Count - 1;
listBox_remind.ClearSelected();
}
}
}
(3)还有传参数的
Action<int, bool> progress = delegate (int v, bool visible)
{
progressBar1.Visible = visible;
progressBar1.Value = v;
};
本文介绍了三种在不同线程间安全更新UI的方法:使用Action委托、建立自定义委托及带参数的Action委托。这些技巧适用于.NET框架下,如Windows Forms应用程序中,确保UI线程不会被阻塞。
547

被折叠的 条评论
为什么被折叠?



