1

我正在编写一个应用程序,它每 1 秒根据时间戳创建文件,然后将它们移动到另一个文件夹,然后将它们作为帖子发送到将它们保存在文件夹中的 web 服务。运行生成函数时,它生成成功。运行上传功能时,它会成功上传它们。但是当同时运行它们和 backgroundworker 组件时,第一个运行良好,但是上传机制告诉 em 文件是由另一个进程打开的。我该如何解决?谢谢

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());

        }
    }

您应该注意的另一件事是多线程同步。也许您的“上传”后台工作人员正在尝试在“生成文件”后台工作人员有时间完成创建文件之前访问该文件。

于 2012-04-28T14:19:36.630 回答