1

1秒ごとにタイムスタンプに基づいてファイルを作成し、それらを別のフォルダーに移動してから、フォルダーに保存するWebサービスに投稿として送信するアプリケーションを作成しています。生成関数を実行すると、正常に生成されます。アップロード機能を実行すると、正常にアップロードされます。しかし、それらの両方とバックグラウンド ワーカー コンポーネントを実行すると、最初のコンポーネントは完全に機能しますが、アップロード メカニズムによって、ファイルが別のプロセスによって開かれていることがわかります。どうすれば解決できますか?どうも

4

1 に答える 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 に答える