我有一个BackGroundWorker,它依赖于DoWork()中的WinUSB ReadPipe()调用。当ReadPipe()返回数据时,该数据将打包到DoWorkEventArgs参数中,DoWork()结束。
通常RunWorkerCompleted()在DoWork()结束后很快执行。然而,时不时地,两者之间有5秒的延迟。我在DoWork()和RunWorkerCompleted()的开始和结束时使用了DateTime.Now时间戳,以确定延迟发生的确切位置。
什么可能导致DoWork()和RunWorkerCompleted()之间的延迟?我能做些什么吗?