2012-04-28 43 views
1

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

+1

将创建的文件写入磁盘后关闭了吗? – Brian 2012-04-28 13:29:20

回答

0

当处理实现IDisposable接口的类(如文件流类)时,一种很好的做法是将这些类的用法包装在unsing语句中。 From 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()); 

     } 
    } 

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

+0

尝试没有成功。 – 2012-04-29 15:14:55

+0

顺便说一句,你可以在这里检查代码: – 2012-04-29 15:16:18

+0

https://www.dropbox.com/s/ks4uu6csdk3691g/3%20functions%20in%20the%20same%20time%20-%20localhost.zip – 2012-04-29 15:18:57