不知道具体实现,作为程序员我们只能黑箱猜测,按照可能解决问题的顺序排一下 1检查UI操作部分,虽然你说分线程了,不过总归要操作UI,那么有可能会做同步invoke,建议异步begininvoke 2建议把大量IO和大量计算部分单独运行,同时进行限流动作。不要一次并发太多,避免上个绘制还未完成,下个绘制就开始的情况 3 如果一定是并发,建议离屏绘制 4 根据经验音频的200ms空白大概相当与人类正常语速的断句停顿时间,所以建议频率数据(我不知道你到底是频率还是原始pcm)重新window动态采样或抽样,保证显示速度。 总体上可以按这个顺序解决,不过我们需要你实际测试。看到底是那部分问题,是IO的征用,还是cpu的争用,又或是UI更新产生阻塞
从项目上说udp不丢包,不串时序比较难 能否修改一下项目架构,直接用rstp协议接流。这样就算先临时对付直接用ffmepg播放音频都可以完成(优先完成,即使ffmepg不理想,后面再改自己直接接rstp也可以做)
向各位大神请教一个多线程的问题。UDP通信中,数据量很大,达到每秒几兆的量。现在我开了A、B两个端口接收不同的数据。线程A接收端口A传输的频谱数据,线程B接收端口B传输的语音数据。在线程A中有耗时的画图程序,一次耗时400多毫秒。现在的现象就是,如果运行画图程序,实时语音就会断断续续,感觉是丢包了。如果不运行画图程序,实时语音就很连续。请问大神怎么解决这个问题。我用的语言是C#,我对线程这块只懂皮毛,不够深入。请大神支个招,谢谢。解决必有回报
在找解决办法之前先要定位问题出在哪里。 你看到的现象是,在运行画图程序的时候,实时语音就会断断续续。从你给出的信息来看,是不足以找出问题出在哪里的。 画图程序和实时语音是不是两个独立的工作单元?他们会不会互相影响? 如果是的话,那么就可能是资源出现了瓶颈。一般来说瓶颈会出现在带宽上面,也会出在 CPU 上面,也会出在内存和硬盘上面。在实时语音断断续续的时候,这些硬件的使用情况是怎么样的? 这些可能出现问题的地方,你都要去看一下,即使问题不出现在这里,也排除了一个可能性。很多时候都是使用这样的排除法去解决问题的。
110,536
社区成员
642,576
社区内容
加载中
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧