C #: приоритет темы BackgroundWorker - PullRequest
       49

C #: приоритет темы BackgroundWorker

3 голосов
/ 14 февраля 2012

Я использую BackgroundWorker в C #, и мне нужно изменить приоритет потока на RealTime и характеристики на "Pro Audio" с помощью AvSetMmThreadCharacteristics.

Поскольку BackgroundWorker перезагружает потоки в ThreadPool, не рекомендуетсяизмените свойства такого рода, но если мне придется переписать код, чтобы использовать вместо него обычный Thread (), я потеряю все дополнительные функции (отмена / прогресс / и т. д.).

Итак, какие проблемы можно ожидать, когдапридерживаться темы BackgroundWorker?

1 Ответ

4 голосов
/ 14 февраля 2012

Просто создайте отдельную ветку, и вы будете ее владельцемПоток пула предназначен для относительно короткого использования, которое, похоже, не подходит для вашего случая.
Воспроизведение логики хода выполнения и отмены не так сложно.

Когда вы изменяете свойства внутри BGW, убедитесь, что вы установили их обратно (попробуйте / наконец).Но есть и другие проблемы: ваш поток в управляемом пуле может переключаться, когда вы что-то блокируете или ждете.По крайней мере, спецификации не исключают этого.

...