C#:BackgroundWorker线程优先级

我在C#中使用BackgroundWorker,并且需要使用AvSetMmThreadCharacteristics将线程的优先级更改为RealTime,并将特性更改为“ Pro Audio”.

由于BackgroundWorker会回收ThreadPool中的线程,因此不建议更改此类属性,但是,如果我不得不重写代码以使用常规Thread()代替,则我会放弃所有其他功能(取消/进度/等).

那么,坚持使用BackgroundWorker线程时会发生什么问题?

解决方法:

只需创建一个单独的线程,即可拥有它.池线程仅用于相对较短的时间,似乎不适合您的情况.
重现进度和取消逻辑并不那么困难.

当您确实更改bgw内部的属性时,请确保将其重新设置(尝试/最终).但是还有其他问题,当您锁定或等待某些操作时,托管池线程可能会切换.至少规范不排除这一点.

上一篇:c#-等待这些BackgroundWorker中的任何一个完成


下一篇:将GUI值传递给backgroundworker的正确方法?