我正在开发一个类库,其中一个类负责使用来自Internet的XDocument.Load(url)
检索Xml文件。看到这个操作可能需要几秒钟才能完成,因此在它自己的线程上运行它是有意义的。
谁有责任创建这个帖子?消费者或检索文件的类?有关于此的最佳做法吗?
答案 0 :(得分:5)
最佳做法是实现异步模式。这意味着,如果您的班级使用LoadXml
方法,您还会实施LoadXmlAsync
方法和某种OnCompleted
事件。
您可以阅读here
答案 1 :(得分:2)
我认为两种选择都很好。它还取决于您使用此方法获取数据的位置数。如果它在多个地方使用,那么在检索文件的类中安排线程是非常有意义的。
我个人会去找最后一个,因为如果我需要在更多的地方(可能是以后)使用它,这会给我更大的灵活性。
在考虑这个问题时,我想到了前缀方法BeginDoSomeOperation和EndDoSomeOperation,它会为最后一个选项提供更多信用。