110,533
社区成员
发帖
与我相关
我的任务
分享
private void ShowMyMessage(string str)
{
try
{
//比较调用的线程和创建的线程是否为同一线程
//如果不是,结果为true
if (this.listBoxMessage.InvokeRequired == true)
{
//如果结果为true,则自动通过代理执行else中语句的功能(注意:是else不是IF)
//这里只需要传入参数Str即可
//但是执行的功能会始终与else中的指定的功能相同,区别仅是通过代理完成
ShowMessageDelegatel messageDelegate = new ShowMessageDelegatel(ShowMyMessage);
this.Invoke(messageDelegate, new object[] { str });-----------------这行运行结束时报错
}
else
{
//在这里指定如果是同一个线程需要完成什么功能
//如果是不同的线程,系统会自动通过代理实现这里指定的功能
listBoxMessage.Items.Add(str);
}
}
catch(System.ObjectDisposedException)
{
return;//如果主界面已经退出了,那线程也退出好了。
}
}