私はクラスライブラリに取り組んでおり、クラスの1つがXDocument.Load(url)
インターネットから使用してXmlファイルを取得する責任があります。この操作は完了するまでに数秒かかる可能性があるため、独自のスレッドで実行することは理にかなっています。
このスレッドを作成するのは誰の責任ですか?ファイルを取得するコンシューマーまたはクラス?これに関するベストプラクティスはありますか?
私はクラスライブラリに取り組んでおり、クラスの1つがXDocument.Load(url)
インターネットから使用してXmlファイルを取得する責任があります。この操作は完了するまでに数秒かかる可能性があるため、独自のスレッドで実行することは理にかなっています。
このスレッドを作成するのは誰の責任ですか?ファイルを取得するコンシューマーまたはクラス?これに関するベストプラクティスはありますか?
ベスト プラクティスは、非同期パターンを実装することです。これは、クラスにメソッドがある場合、メソッドと何らかのイベントLoadXml
も実装することを意味します。LoadXmlAsync
OnCompleted
ここでそれについて読むことができます
どちらの選択肢も良いと思います。また、このメソッドを使用してデータを取得する場所の数にも依存します。複数の場所で使用される場合は、ファイルを取得するクラスでスレッドを配置するのが完全に理にかなっています。
より多くの場所で使用する必要がある場合(おそらく後で)、より柔軟になるため、私は個人的に最後のものを選びます。
この質問について考えると、接頭辞付きのメソッド BeginDoSomeOperation と EndDoSomeOperation が頭に浮かび、最後のオプションにクレジットが追加されます。