【发布时间】:2018-01-27 20:40:15
【问题描述】:
我在写入 UWP 中的串行设备时遇到问题。我写入端口的任务如下所示:
public async Task WriteAsync(byte[] stream)
{
if (stream.Length > 0 && serialDevice != null)
{
await writeSemaphore.WaitAsync();
try
{
DataWriter dataWriter = new DataWriter(serialDevice.OutputStream);
dataWriter.WriteBytes(stream);
await dataWriter.StoreAsync();
dataWriter.DetachStream();
dataWriter = null;
}
finally
{
writeSemaphore.Release();
}
}
}
代码在我调用这个函数的前两次运行良好。我第三次在 await dataWriter.StoreAsync() 行中的 ntdll.dll 中得到未处理的异常。
我能看到的完整例外是:
xx.exe 中 0x00007FFCB3FCB2C0 (ntdll.dll) 处未处理的异常: 0xC000000D:向服务或函数传递了无效参数。
This answer 提到垃圾收集器关闭输入流,但是我不明白为什么它会在我的代码中发生。任何帮助了解此问题的底部都将受到高度赞赏!
【问题讨论】:
-
这是什么语言?这被标记为“C”。
-
它是 C#。刚刚修好了!
标签: c# uwp serial-port windows-10 ntdll