1秒ごとにタイムスタンプに基づいてファイルを作成し、それらを別のフォルダーに移動してから、フォルダーに保存するWebサービスに投稿として送信するアプリケーションを作成しています。生成関数を実行すると、正常に生成されます。アップロード機能を実行すると、正常にアップロードされます。しかし、それらの両方とバックグラウンド ワーカー コンポーネントを実行すると、最初のコンポーネントは完全に機能しますが、アップロード メカニズムによって、ファイルが別のプロセスによって開かれていることがわかります。どうすれば解決できますか?どうも
1 に答える
0
ファイル ストリーム クラスなど、IDisposable インターフェイスを実装するクラスを処理する場合、これらのクラスの使用法を unsing ステートメントでラップすることをお勧めします。MSDN から:
//Create the file.
using (FileStream fs = File.Create(path))
{
AddText(fs, "This is some text");
AddText(fs, "This is some more text,");
AddText(fs, "\r\nand this is on a new line");
AddText(fs, "\r\n\r\nThe following is a subset of characters:\r\n");
for (int i=1;i < 120;i++)
{
AddText(fs, Convert.ToChar(i).ToString());
}
}
もう 1 つ知っておくべきことは、マルチスレッド同期です。「ファイルの生成」バックグラウンド ワーカーがファイルの作成を完了する前に、「アップロード」バックグラウンド ワーカーがファイルにアクセスしようとしている可能性があります。
于 2012-04-28T14:19:36.630 に答える