1
StreamSocket _connection = AsyncCreateConnection(); // In constructor

private async void receive(){
DataReader reader = new DataReader(_connection.InputStream);
DataWriter writer = new DataWriter(_connection.OutputStream);

try
        {
            reader.InputStreamOptions = InputStreamOptions.Partial;
            uint sizeFieldCount = await reader.LoadAsync(sizeof(uint)); // <<--  Explosion
            if (sizeFieldCount != sizeof(uint))
            {
                return;
            }

            // Read the string.
            uint stringLength = reader.ReadUInt32();
            uint actualStringLength = await reader.LoadAsync(stringLength);
            if (stringLength != actualStringLength)
            {
                return;
            }

            Debug.WriteLine(reader.ReadString(actualStringLength));
        }
        catch (Exception exc)
        {
            Debug.WriteLine(exc.Message);
        }
}

午後ずっとこのエラーが発生しています。receive メソッドが呼び出されると、接続作成の非同期性が終了する必要があります。

4

1 に答える 1

0

例外は、async準備が整う前に呼び出しの出力を使用していることです。

接続の準備ができていないと思います。接続する必要があるかもしれませんawait

コンストラクターは使用できないためasync、別の関数から呼び出す必要があります。

StreamSocket _connection = await AsyncCreateConnection();
于 2012-11-27T17:53:29.363 に答える