objectdisposeException是未处理的问题
本文关键字:问题 未处理 objectdisposeException | 更新日期: 2023-09-27 17:59:16
我有这个代码:
private void DownLoaderSession()
{
try
{
stream = client.GetStream();
// Buffer for reading data
byte[] bytes = new byte[256];
string data = null;
bool runFlag = true;
// Enter the listening loop.
while (runFlag)
{
int recLen = stream.Read(bytes, 0, bytes.Length);
// Translate data bytes to a ASCII string.
data = System.Text.Encoding.ASCII.GetString(bytes, 0, recLen);
// Process the data sent by the client.
data = data.ToUpper();
string[] param = data.Split('#');
switch (param[0]) // CPMMAND
{
case "GETFILE":
FileInfo ftemp = new FileInfo(ClientForm.SharedFolderPath + "''" + param[1] ); // file name
fileSize = ftemp.Length; // size of file in long
Send("FILEREADY#" + param[1] + "#" + fileSize.ToString());
UpLoad(param[1]);
break;
case "GETALLDETAILS":
string temp = FindAllDetails(param[1]);
Send("DETAILSREADY#"+temp);
this.client.Close();
break;
}
}
}
}
我正在将数据从一个类发送到另一个类,线路是:
int recLen = stream.Read(bytes, 0, bytes.Length);
我得到错误:
objectdisposeException未经处理
我在网上搜索了一下,找不到答案。
您应该在以下行之后将runFlag
设置为false
:
this.client.Close();
此处的语句:
case "GETALLDETAILS":
string temp = FindAllDetails(param[1]);
Send("DETAILSREADY#"+temp);
this.client.Close();
break;
它关闭客户端(假设它是TcpClient
),流将被处理。
break;
没有突破while语句,只有switch情况。