gpt4 book ai didi

c# - 需要在 C# 中优先处理异步套接字读取

转载 作者:太空狗 更新时间:2023-10-29 21:59:23 26 4
gpt4 key购买 nike

我的应用程序使用异步预取大量视频帧HttpWebRequest 请求。所以,如果有 100 帧,预取器将一次异步请求所有 100 个帧,并在收到返回时进行处理。即它一次进行 100 个异步调用。这会使网络饱和卡,但没关系。我想最大化网络带宽。

但是,在进行此预取时,用户可能想要查看其中一个帧。所以,假设他们想查看第 56 帧。问题是,第 1 - 100 帧已经被请求,并且在管道中,因此对第 56 帧的请求可能需要很长时间才能获得一个回应。

如果有某种方法可以在发出异步请求后重新确定它们的优先级,那就太好了。并将用户请求推到队列的前面。

如果我不能这样做,我想我将不得不分批请求帧,这样我就可以在批之间插入我的用户请求,避免超时。

任何关于如何正确设计它的想法将不胜感激。

最佳答案

这不是编程问题,而是协议(protocol)问题。如果您使用使线路饱和的贪婪协议(protocol),那么您甚至已经使用传统协议(protocol)有效地关闭了您自己的选择。

如果您为第二个 channel 保留了一部分带宽,则可以将第二个 channel 用于单个帧而不是批处理帧。要在 NIC 饱和的情况下对第二个 channel 中的帧进行优先级排序,您需要服务质量或其他一些链路层来确定流量的优先级。

但我们已经超前了。如果你想要一个行为良好的功能性应用程序,你需要坐下来根据协议(protocol)专家的建议定义一个真正的协议(protocol):NIC、交换机、协议(protocol)、数据包大小、重试等。一旦你把这些都整理好,你就会拥有一个编程问题。

关于c# - 需要在 C# 中优先处理异步套接字读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5986781/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com