在库中使用ThreadPool是可以接受的吗?

问题描述:

是否可以在库中使用ThreadPool在库中使用ThreadPool是可以接受的吗?

因为如果你的库的用户使用ThreadPool以及这显然会引起一些不愉快的问题(由于ThreadPool是一个静态类课程)..

有什么约定?

是的,我认为在库代码中使用ThreadPool是合适的。即使用户可以在外面使用ThreadPool,ThreadPool仍然足以调整自身。

。另一方面,作为一个库开发人员,你应该提供的灵活性:用户可以选择使用线程池,一个特定的线程(S),甚至是第三方线程池实现。

是。

只要它是有据可查的,你提供的方法,使图书馆的用户控制线程池,如最小/最大线程数,也许不使用线程池在所有的选项。

你也应该让很清楚里面露出库的部分是线程安全的,哪些不是。

ThreadPool被设计为可以被多个组件同时使用。因此,如果从您的特定库中使用它,它本身不会出现特别的问题。

什么可以是一个问题是在你的库中的线程行为。必须清楚地记录你的库的线程语义。如何创建和使用这些线程应该是一个实现细节。 ThreadPool本身不应该出现问题,除非它的一个固有属性(COM套件关联,无法取消线程等)给您的API或消费者带来问题。