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.