我想不断读取串行端口,并在我的Windows 10通用应用程序(C#)的文本框中获得输出。我发现从MS系列样品此代码https://github.com/ms-iot/samples/tree/develop/SerialSample/CS:我怎样才能不断读取在Windows 10通用(C#)的串行端口
private async void Listen()
{
try
{
if (serialPort != null)
{
dataReaderObject = new DataReader(serialPort.InputStream);
while (true)
{
await ReadAsync(ReadCancellationTokenSource.Token);
}
}
}
catch (Exception ex)
{
if (ex.GetType().Name == "TaskCanceledException")
{
CloseDevice();
}
}
finally
{
if (dataReaderObject != null)
{
dataReaderObject.DetachStream();
dataReaderObject = null;
}
}
}
private async Task ReadAsync(CancellationToken cancellationToken)
{
Task<UInt32> loadAsyncTask;
uint ReadBufferLength = 1024;
cancellationToken.ThrowIfCancellationRequested();
dataReaderObject.InputStreamOptions = InputStreamOptions.Partial;
loadAsyncTask = dataReaderObject.LoadAsync(ReadBufferLength).AsTask(cancellationToken);
UInt32 bytesRead = await loadAsyncTask;
if (bytesRead > 0)
{
reciveTextBox.Text = dataReaderObject.ReadString(bytesRead);
}
}
但是当我打电话听()函数与点击一个按钮,有时它有时读端口没有。
请给出一个解决方案,它会不断读取串行端口并在文本框中输出结果。
MainPage.xaml.cs中的全部代码是在这里:http://pastebin.com/dmsTUBmT
尽管此链接可能回答问题,但最好在此处包含答案的基本部分,并提供供参考的链接。如果链接页面更改,则仅链接答案可能会失效。 – Marusyk