public FrmMain()
{
Parallel.ForEach(strs, num =>
{
//并行部分,比如文件IO
SetText(num, this.btnRequestIn5, Color.Aqua);
//this.Invoke(new Action(() =>
//{
// //界面更新
//}));
});
}
public void SetText(string msg, Button label, Color color)
{
try
{
lock (_setTextButtonLocker)//并行访问界面元素加锁
{
//如果不同线程
if (label.InvokeRequired)
{
label.Invoke(new EventHandler(delegate
{
label.Text = msg;
label.BackColor = color;
label.ForeColor = Color.White;
}));
}
else
{
label.Text = msg;
label.BackColor = color;
label.ForeColor = Color.White;
}
}
}
catch
{
}
}