我正在 UWP 平台上编写一个将在移动 UWP 应用程序中使用的类库。
该库需要通过基于 TCP 的专有协议与外部设备通信。该协议要求接收或发送操作等待确切的时间。
正如 TPL 模式所暗示的那样,我实际上已经使用 ReceiveAsync 和 SendAsync 实现了通信层,“等待”它们。
在大量阅读该论点之后,我发现无法在本地设置读/写操作的超时。可以使用一些技巧来实现超时过程(例如:.WaitAny 或可超时令牌),但我所有的阅读都让我意识到了这个事实:
只有关闭套接字才能中断 ReceiveAsync 或 SendAsync 任务
我的问题是:这是真的吗?只能关闭/处理套接字才能阻止超时的接收/发送?
如果这是真的,由于我正在实施的协议不允许我打开/关闭套接字数百次,我需要恢复到实际处理正常超时的命令的同步接收/发送版本。
我已经阅读了很多关于论点的内容,并且我很确定我所写的内容,但老实说,我希望有一种方法可以使用 TPL 模式来处理超时,而无需关闭套接字......
谢谢。