Der Operator await kann nur innerhalb einer asynchronen Methode verwendet werden.

Ich habe eine SchnittstelleISFactory wie folgt

namespace MyApp.ViewModels
{
    public interface IStreamFactory
    {
        Stream CreateSPStream(string sPName);
    }
}

In der nicht universellen Windows-Version wurde die oben genannte Funktion wie folgt implementiert.

public Stream CreateSerialPortStream(string serialPortName)
{
    var p = new System.IO.Ports.SerialPort();
    p.PortName = serialPortName;
    p.BaudRate = 9600;
    p.RtsEnable = true;
    p.DtrEnable = true;
    p.ReadTimeout = 150;
    p.Open();
    return p.BaseStream;
}

Diese Implementierung ist in Windows Universal nicht mehr verfügbar. Was ich versucht habe, ist unten dargestellt.

public  Stream CreateSerialPortStream(string serialPortName)
{
    var selector = SerialDevice.GetDeviceSelector(serialPortName); //Get the serial port on port '3'
    var devices = await DeviceInformation.FindAllAsync(selector);
    if (devices.Any()) //if the device is found
    {
        var deviceInfo = devices.First();
        var serialDevice = await SerialDevice.FromIdAsync(deviceInfo.Id);
        //Set up serial device according to device specifications:
        //This might differ from device to device
        serialDevice.BaudRate = 19600;
        serialDevice.DataBits = 8;
        serialDevice.Parity = SerialParity.None;
    }
}

Ich erhalte den folgenden Fehler.

Der wait-Operator kann nur innerhalb einer asynchronen Methode verwendet werden.`

Kann jemand einen Weg vorschlagen, um dies zu umgehen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage