我有一个来自外部源的数据流,我目前在BackgroundWorker
. 每次它获得另一块数据时,它都会使用ReportProgress()
调用将该数据呈现给 GUI。
我得到的印象是该ProgressChanged
函数只是一个同步机制,所以当我的工作线程调用它时,两个线程都被锁定,而 GUI 线程处理更改。所以我认为问题在于,当后台线程更新 GUI 时,它无法接收任何数据,这意味着我们丢失了一些数据包。这是正确的还是我的丢包更有可能来自其他地方?
如果这是原因,那么添加第二个线程来进行 GUI 更新是一个合理的解决方案,还是有更好/更彻底的方法来解决我应该深入研究的这些问题?
非常欢迎任何想法和建议。