我编写了一些运行良好的代码:程序打开一个与服务器的异步套接字,并将服务器发送的任何内容写入文本区域。
问题是,当我关闭表单时,我得到了很多错误,因为回调试图在 textarea 中写入,显然,它不再存在了。
这是在 textarea 上写入的方法:
private void appendText(string s)
{
if (InvokeRequired)
{
this.Invoke(new Action<string>(appendText), new object[] { s });
return;
}
SocketStream.AppendText(s + "\r\n");
}
这是调用所述方法的回调代码的一部分:
string[] arr = txt.Split(new char[1]);
foreach (string t in arr)
{
if (!String.IsNullOrEmpty(t) && !String.IsNullOrWhiteSpace(t))
{
appendText( t);
}
}
有没有办法防止这些错误发生?我已经尝试添加一个
if(SocketStream != null)
但它似乎没有用。