O operador de espera pode ser usado apenas dentro de um método assíncrono

Eu tenho uma interfaceISFactory do seguinte modo.

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

Na versão não universal do Windows, a função acima foi implementada da seguinte maneira.

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

Esta implementação não está mais disponível no Windows Universal. O que eu tentei é mostrado abaixo.

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

Estou tendo o erro a seguir.

O operador de espera pode ser usado apenas dentro de um método assíncrono.

Alguém pode sugerir uma maneira de contornar isso.

questionAnswers(2)

yourAnswerToTheQuestion