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

整个下午都收到这个错误。创建连接的异步应该在调用接收方法时完成。

4

1 回答 1

0

例外是说您在async调用准备好之前正在使用它的输出。

我相信你的连接还没有准备好,也许你也应该await连接。

因为构造函数不能是async你需要从另一个函数调用它。

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