在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(),我应该刷新和分离流吗?
答案 0 :(得分:2)
是的,您正确使用DataWriter。我建议您每次都继续处理DataWriter而不是重新使用它。您还应该使用using语句而不是Dispose()例如:
using (var dataWriter = new DataWriter(serialPort.OutputStream))
{
...
}
这实现了与最终在try catch的finally块中放置Dispose()相同的功能。