我经常使用多任务处理,并且正在努力将 Reactive Extensions 添加到我的工具集中。但是,我更喜欢命名线程,以便我可以更好地了解当我中断等时正在运行的线程。总的来说,它会更好。但是,当我使用带有 SubscribeOn 和 ObserveOn 等的响应式扩展时,我还没有找到一种命名线程的好方法。
有任何想法吗?
我经常使用多任务处理,并且正在努力将 Reactive Extensions 添加到我的工具集中。但是,我更喜欢命名线程,以便我可以更好地了解当我中断等时正在运行的线程。总的来说,它会更好。但是,当我使用带有 SubscribeOn 和 ObserveOn 等的响应式扩展时,我还没有找到一种命名线程的好方法。
有任何想法吗?
如果您正在使用NewThreadScheduler
alot,您可以创建一个自定义Thread
它创建的子类,然后在使用时使用您的自定义调度程序ObserveOn
或SubscribeOn
...
// created threads will have names prefixed with "bob"
someObservable.ObserveOn(new CustomNewThreadScheduler("bob"))...
使用 Rx 时,大部分“线程”分为三个阵营:
SubscribeOn
or的目标ObserveOn
,将基于框架指定的SynchronizationContext
。如果您使用用户界面,这通常是“主 UI”线程,因此命名主线程将为您提供正确的名称。由于 2/3 的选项允许您提供名称,因此您始终可以命名这些线程,然后假设在调试期间观察到的任何未命名线程都是 ThreadPool 托管线程。