c# 多进程写信息到前台控件

时间:2021-03-01 16:42:03

private void DispMsg(string strMsg, bool clearlb = false)
{
if (this.lberror.InvokeRequired == false)
{
string strhms = DateTime.Now.ToShortTimeString() + ": ";
if (clearlb)
{
lberror.Text = strhms + strMsg;
}
else
{
lberror.Text = strhms + strMsg + Environment.NewLine + lberror.Text;

}
}
else
{
//通过使用Invoke的方法,让子线程告诉窗体线程来完成相应的控件操作
var DMSGD = new DispMSGDelegate(DispMsg);
//使用控件lstMain的Invoke方法执行DMSGD代理(其类型是DispMSGDelegate)
this.lberror.Invoke(DMSGD, strMsg, clearlb);
}
}

private delegate void DispMSGDelegate(string msg, bool clearlb = false);