我遇到了流程结束的问题。
我需要压缩文件 - 在我拉链后 - 我需要用这个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文件。
答案 0 :(得分:1)
这是Windows应用程序还是控制台应用程序?在第一种情况下,使用Application.Exit()
。在第二个 - 发布整个代码
答案 1 :(得分:1)
这个问题有点不清楚,但如果你用Process表示System.Threading.Process,你可以使用Process.Exited事件。当流程结束时,它就会被提升。