C#:BackgroundWorker线程优先级

时间:2012-02-14 11:39:36

标签: c# multithreading asynchronous backgroundworker threadpool

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

由于BackgroundWorker在ThreadPool中回收线程,因此不建议更改这些属性,但如果我必须重写代码以使用普通的Thread(),我会丢失所有额外内容(取消/进度/等) )。

那么,当坚持使用BackgroundWorker线程时,我会遇到什么问题?

1 个答案:

答案 0 :(得分:4)

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

当您更改bgw中的属性时,请确保将其设置回来(尝试/最后)。但是还有其他问题,当您锁定或等待某些内容时,您的托管池线程可能会被切换。至少规格不排除这一点。