我希望能够使用反应式异步接收udp软件包。我已经写了这段代码。
udpServer = new UdpClient(20000);
remoteEP = new IPEndPoint(IPAddress.Any, 20000);
var read = Observable.FromAsyncPattern(udpServer.BeginReceive, t => udpServer.EndReceive(t, ref remoteEP));
然后我使用此函数并存储IObservable结果。
reader = read()
.Do(s =>
{
Logs.Add(System.Text.Encoding.UTF8.GetString(s));
})
.DoOnError(ex => status = ex.Message; );
当我最终订阅时,该操作仅发生一次,然后观察者将被完全处置。
这是我的问题:有没有办法使此代码连续工作?每次接收到新日志时如何接收“ DO”操作?
侧边栏:只是想知道Observable.FromAsyncPattern有什么用处,如果我不能重用它,那么最好在开始和结束时静态键入2个方法,而不是让更多需要稍后处理的类实例产生开销。
除使用TPL之外,-im还为其他所有其他选项打开。
qq_笑_17
慕无忌1623718
相关分类