正确使用DataWriter?

时间:2016-03-14 11:11:17

标签: c# win-universal-app

在UWP应用中,我遇到了使用DataWriter的问题。当我将UWP应用程序部署到ARM机器(RaspBerry PI 2B)时,它偶尔会成功将字符串写入serialdevice。在下面找到我的代码。注意:此功能仅每30秒左右调用一次。

        public async Task Transmit(string command)
        {
          if (serialPort == null)
            serialPort = await GetSerialDeviceAsync();

          dataWriter = new DataWriter(serialPort.OutputStream);

          dataWriter.WriteString(command);

          await dataWriter.StoreAsync();

          await dataWriter.FlushAsync();

          dataWriter.DetachStream();

          dataWriter.Dispose();  
        }

我有两个问题:

有人可以确认我使用的是DataWriter的正确方法吗?

如果我想重复使用dataWriter而不是每次都定义一个新的DataWriter(),我应该刷新和分离流吗?

1 个答案:

答案 0 :(得分:2)

是的,您正确使用DataWriter。我建议您每次都继续处理DataWriter而不是重新使用它。您还应该使用using语句而不是Dispose()例如:

using (var dataWriter = new DataWriter(serialPort.OutputStream))
{
...
}

这实现了与最终在try catch的finally块中放置Dispose()相同的功能。