5

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();
    }

しかし、2 番目の LoadAsync で文字列を読み取ろうとすると、ObjectDisposedException が発生します。手伝ってもらえますか?なぜそのような例外がスローされるのかわかりません。DataReader.InputStream.ReadAsync() も使用しようとしましたが、このような問題もありました。

4

2 に答える 2

1

Alex Sorokoletov の最後のコメントに基づいて、あなたの重要なオブジェクトの 1 つ (おそらくストリーム) は、への呼び出しで破棄されると思います。datareader.DetachStream();

于 2014-10-10T04:29:51.313 に答える