非UI线程上的DispatcherObject

时间:2012-01-27 03:45:20

标签: .net wpf multithreading

我想创建一个非UI对象模型,其对象是线程连接的。如果我从WindowsBase程序集中的Windows.Threading.DispatcherObject继承,我可以利用很多好的代码。但是,我有点犹豫,因为它感觉就像我将我的库耦合到WPF一样。但是WindowsBase 真的是 WPF的一部分吗?

我已经推出了自己的Dispatcher和DispatcherObject实现。这是一个很好的学习经历,相对简单,似乎运作良好。但如果其他人最终继承或使用此代码,他们将不得不熟悉它。如果我使用WindowsBase中的代码,我可以将它们引用到MSDN。

所以我正在寻找建议。你会建议继承DispatcherObject,还是认为它不好? DispatcherObject是否打算在WPF之外使用?

1 个答案:

答案 0 :(得分:0)

不,你没有把它与WPF联系起来。

我认为它与ObservableCollection的位置相似(即使ObservableCollection在System.dll中) - 它最自然的栖息地是WPF,但是在WPF之外不难想到它的使用。

顺便说一句,您甚至没有将它与Microsoft CLR联系起来。与其他WPF不同,调度员seems to be implemented in Mono - Mono的作者已经声明WPF is not even planned to be supported

我也觉得你提到DispatcherObject而不是Dispatcher有点奇怪。您是否在某种程度上使用DispatcherObject而不使用Dispatcher?