当我调用连接到使用SerialPort与通风系统通信的af服务器的异步功能时,我遇到了问题。问题是如果我慢慢调用函数它的工作非常好。通过Metro界面中的按钮。但是如果我想要在彼此之后发送10个命令。例如。 10x Await Await ReadData("COMMAND")
失败并显示错误由于线程退出或应用程序请求,I / O操作已中止(800703E3)
因此,我认为它不是在新功能尝试之前完成功能我是否正确?
我致电:DataReceived = Await ReadData(SendCommand)
然后调用函数
Public Shared Async Function SendReceive(SendCommand As String) As Task(Of String)
'Some code (try/catch) and so on.
Await _Socket.ConnectAsync(srvHostname, srvPort)
'Some more code (write to server that talks to ventilation system)
_writer.WriteString(SendCommand)
Await _writer.StoreAsync()
' More code (read answer from the server from the ventilation system)
Dim strReceivedBytes As String = Await _reader.LoadAsync(512)
Return _Reader.ReadString(strReceivedBytes)
End Function
答案 0 :(得分:0)
不知何故,问题只是在功能结束前多次点击时才会出现问题。所以解决方案是禁用按钮直到功能存在。