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未经处理

我在网上搜索了一下,找不到答案。

objectdisposeException是未处理的问题

您应该在以下行之后将runFlag设置为false

this.client.Close();

此处的语句:

 case "GETALLDETAILS":
            string temp = FindAllDetails(param[1]);
            Send("DETAILSREADY#"+temp);
            this.client.Close();
            break;

关闭客户端(假设它是TcpClient),流将被处理。

break;没有突破while语句,只有switch情况。