0

こんにちは、Windows ストア アプリで MessageWebSocket を使用していますが、メソッド mws() を呼び出すと、次のようになります。

予期しない時間にメソッドが呼び出されました

1 つの接続に同じ MessageWebSocket を使用したいので、別のクラスからこのメソッドを呼び出す必要があり、それが私のメソッドが静的である理由です。

    private static MessageWebSocket messageWebSocket = null;
    public static MessageWebSocket mws()
    {
        if (messageWebSocket == null)
        messageWebSocket =  new MessageWebSocket();
        return  messageWebSocket;
    }

private async void websocketRequestRegisterDevice(object sender, TappedRoutedEventArgs e)
    {
        ...
        cos.WriteRawBytes(new byte[] { 7, 1, 0, 0 });
        req.WriteTo(cos);
        mws();
        mws().Control.MessageType = SocketMessageType.Binary;
        mws().MessageReceived += websocketResponseRegisterDevice;
        await mws().ConnectAsync(server);
        messageWriter = new DataWriter(mws().OutputStream);
        messageWriter.WriteBytes(buff);
        await messageWriter.StoreAsync();
    }

私は async メソッドで呼び出しますが、await を使用したい場合は、たとえばメッセージ タイプが awaitable ではないと書いてください。

4

1 に答える 1