我在使用 Windows 8 UI 应用程序时遇到问题。我正在使用客户端-服务器通信,客户端需要一直检查新消息。所以我使用这样的代码,其中_socket是一个StreamSoket:
private async static void MessageReceiver()
{
var dataReader = new DataReader(_socket.InputStream);
dataReader.InputStreamOptions = InputStreamOptions.Partial;
var stringHeader = await dataReader.LoadAsync(4);
if (stringHeader != 0)
{
var bytes = new byte[4];
dataReader.ReadBytes(bytes);
var length = BitConverter.ToInt32(bytes, 0);
var count = await dataReader.LoadAsync((uint) length);
var result = dataReader.ReadString(count);
ParseRequest(result);
}
dataReader.DetachStream();
MessageReceiver();
}
但是在第二个 LoadAsync 中,当我尝试读取字符串时,我有 ObjectDisposedException。你能帮我吗?我不知道为什么会抛出这样的异常。我也尝试过使用 DataReader.InputStream.ReadAsync(),但我也遇到了这样的问题。