流程结束的问题

时间:2009-11-09 06:57:58

标签: c#

我遇到了流程结束的问题。

我需要压缩文件 - 在我拉链后 - 我需要用这个zip文件做一些事情......

问题是,虽然消息框出现了 - 我注意到该过程没有结束。

我怎么能确定这个过程结束了?

我的拉链样本:

try
{
     if (File.Exists(@"c:\DaZIP\Bind.sdf"))
         File.Delete(@"c:\DaZIP\Bind.sdf");
     File.Copy(Application.StartupPath + @"\Bind.sdf", @"c:\DaZIP\Bind.sdf");

     byte[] sampleBuffer = null;
     ZipEntry sampleZipFile = null;
     FileStream sampleFileStream = null;

     ZipOutputStream sampleOutputStream = new 
         ZipOutputStream(File.Create(Application.StartupPath + @"\Bind.zip"));
     sampleOutputStream.Password = "12345";
     sampleOutputStream.SetLevel(9);

     foreach (string sampleFile in Directory.GetFiles(@"c:\DaZIP")) 
     {
         sampleZipFile = new ZipEntry(Path.GetFileName(sampleFile));
         sampleOutputStream.PutNextEntry(sampleZipFile);

         sampleFileStream = File.OpenRead(sampleFile);
         sampleBuffer = new byte[sampleFileStream.Length];
         sampleFileStream.Read(sampleBuffer, 0, sampleBuffer.Length);
         sampleOutputStream.Write(sampleBuffer, 0, sampleBuffer.Length);
     }

     sampleOutputStream.Finish();
     sampleOutputStream.Close();
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message ,"",0, MessageBoxIcon.Exclamation);
    return;
}

MessageBox.Show("End ZIP");

我在VS2008 C#WinForm上工作

我知道这个过程仍然有效,因为当我尝试用zip做某事时

文件,我收到文件正在使用的错误。如果我等了1-2分钟,我可以做我的

想要这个zip文件。

2 个答案:

答案 0 :(得分:1)

这是Windows应用程序还是控制台应用程序?在第一种情况下,使用Application.Exit()。在第二个 - 发布整个代码

答案 1 :(得分:1)

这个问题有点不清楚,但如果你用Process表示System.Threading.Process,你可以使用Process.Exited事件。当流程结束时,它就会被提升。