使用System.Threading.Timer与CustomThreadPool?

Way*_*oss 2 .net multithreading

因此,根据MSDN,System.Threading.Timer在ThreadPool线程上调用它的回调委托.有没有办法让它使用自定义ThreadPool?(例如,Jon Skeet的CustomThreadPool.)

Jon*_*eet 5

不使用System.Threading.Timer,不.使用System.Timers.Timer我相信你可以相应地实现相关的线程池ISynchronizeInvoke.我相信计时器会调用BeginInvokeSynchronizingObject来相应地执行回调.如果一个线程池实现ISynchronizeInvoke为"将回调添加到工作队列",它应该可以正常工作.

(我没有实现它,但它可能不会太难做.我的线程池非常原始btw - 或者至少它已经很老了! - 现在几乎肯定有更好的了.)