.Net类库:线程负责

时间:2011-06-01 06:07:21

标签: .net multithreading class-library responsibility

我正在开发一个类库,其中一个类负责使用来自Internet的XDocument.Load(url)检索Xml文件。看到这个操作可能需要几秒钟才能完成,因此在它自己的线程上运行它是有意义的。

谁有责任创建这个帖子?消费者或检索文件的类?有关于此的最佳做法吗?

2 个答案:

答案 0 :(得分:5)

最佳做法是实现异步模式。这意味着,如果您的班级使用LoadXml方法,您还会实施LoadXmlAsync方法和某种OnCompleted事件。

您可以阅读here

答案 1 :(得分:2)

我认为两种选择都很好。它还取决于您使用此方法获取数据的位置数。如果它在多个地方使用,那么在检索文件的类中安排线程是非常有意义的。

我个人会去找最后一个,因为如果我需要在更多的地方(可能是以后)使用它,这会给我更大的灵活性。

在考虑这个问题时,我想到了前缀方法BeginDoSomeOperation和EndDoSomeOperation,它会为最后一个选项提供更多信用。