在我的项目中,当我通过调试运行它的时候,运行了几次之后,它突然崩溃了。它不是在任何特定的时间发生的,也不是在特定的时间段之后发生的。它自己崩溃了,我不知道为什么!
我得到了这样的消息:
An unhandled exception of type 'System.ObjectDisposedException' occurred in System.dll
Additional information: Cannot access a disposed object.
这是它的图片,了解更多信息...
我正在使用VS 2013和C# win form...
它是我的简单代码:
private void btnConnect_Click(object sender, EventArgs e)
{
Result = socketComponent.tcpConnect(Host, int.Parse(Port));
if (Result == 0)
MessageBox.Show("Connected");
}
private void btnDisconnect_Click(object sender, EventArgs e)
{
if (socketComponent != null)
{
socketComponent.tcpDisconnect();
socketComponent.Dispose();
MessageBox.Show("DisConnected");
}
}
点击btnDisconnect后突然发生。可能在第二次点击或更多后...
2条答案
按热度按时间e4eetjau1#
我的猜测是,您应该像这样更改代码:
因为否则,第二次单击“btnDisconnect”将再次调用
Dispose
,这通常不允许在已释放的对象上进行。因此,出现异常。gblwokeq2#
断开连接按钮的代码包括:
因此,第二次(及以后)尝试连接
socketComponent
时,它将被释放。* 在释放对象后,不允许使用它 *,因此请从代码中删除该行。