действительно ли приемлемо использовать ThreadPool в библиотеке?

Профилировщик является великим для рассмотрения Вашего под управлением кода во время разработки, но если Вы ищете способность сделать пользовательские трассировки в производстве, затем, как Denis G. упомянул, , PostSharp является идеальным инструментом: Вы не должны изменять весь свой код, и можно легко переключить его вкл\выкл.

также легко установить за несколько минут и GaГ «l Fraiteur, у создателя PostSharp даже есть видео, который показывает Вам, как легкий это должно добавить трассировку до существующего приложения.
Вы найдете примеры и учебные руководства в раздел документации .

5
задан Letterman 17 October 2009 в 02:41
поделиться

3 ответа

Да. Я думаю, что уместно использовать ThreadPool в коде библиотеки. Даже если пользователь может использовать ThreadPool снаружи, ThreadPool все еще достаточно хорош, чтобы настроить себя.

С другой стороны, как разработчик библиотеки, вы должны обеспечить гибкость: пользователь может выбрать использование ThreadPool, определенного потока (ов), или даже реализация стороннего пула потоков.

3
ответ дан 15 December 2019 в 01:05
поделиться

Да.

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

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

1
ответ дан 15 December 2019 в 01:05
поделиться

ThreadPool предназначен для одновременного использования несколькими компонентами. Так что сам по себе не представляет особых проблем, если используется из вашей конкретной библиотеки.

Что может быть проблемой, так это поведение потоковой передачи в вашей библиотеке в целом. Необходимо четко задокументировать семантику потоковой передачи вашей библиотеки. Как эти потоки создаются и используются, должно быть подробно описано в реализации. Сам ThreadPool не должен представлять проблемы, если только одно из присущих ему свойств (сходство с COM-квартирой, невозможность отмены потоков и т. Д.) Не представляет проблемы для вашего API или потребителей.

0
ответ дан 15 December 2019 в 01:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: