Оператор await может использоваться только внутри асинхронного метода

У меня есть интерфейсISFactory следующее.

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

В неуниверсальной версии Windows вышеуказанная функция была реализована следующим образом.

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

Эта реализация больше не доступна в Windows Universal. То, что я пытался, показано ниже.

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

Я получаю следующую ошибку.

Оператор await может использоваться только внутри асинхронного метода.

Может кто-нибудь предложить способ обойти это.

Ответы на вопрос(2)

Ваш ответ на вопрос