Я - программист C#.
Теперь, я использую ICSharpCode.SharpZipLib.dll для создания zip-файла в моем текущем проекте. Но мне приходит в голову, что, когда я нажимаю кнопку во ВТОРОМ РАЗЕ для выполнения функции для создания zip-файла, приложение выдаст исключение, дружественное, и серьезно сказало мне, что "Размер был нулем, но я ожидал 46086".
Я так смущен, что я хочу знать почему? Когда я нажимаю кнопку в первый раз, когда я могу сделать это успешно без любой ошибки.
Мои связанные коды следующие:
internal void ThreadProc()
{
try
{
ZipHelper.CreateZip(backupZipFile, Constants.HomeConstant, true);
// do other things
}
}
CreateZip () реализация функции следующие:
public static void CreateZip(string zipFileName, string sourceDirectory, bool recurse)
{
FastZip zip = new FastZip();
if (File.Exists(zipFileName))
{
File.Delete(zipFileName);
}
zip.CreateZip(zipFileName, sourceDirectory, true, "");
}
Теперь, я покажу Вам рекурсивную обработку вызовов:
public void UpdateAppAsync(string masterConfig) { this.masterConf = masterConfig; Thread actualThread = new Thread(new ThreadStart(UpdateApp)); actualThread.IsBackground = true; actualThread.CurrentCulture = Thread.CurrentThread.CurrentCulture; actualThread.CurrentUICulture = Thread.CurrentThread.CurrentUICulture; actualThread.Start(); }
private void UpdateDetail(string masterConfig, string category) { IUpdate worker = new HP.ActiveCheckLocalMode.UpdateEngine.UpdateManager(); worker.UpdateApp(masterConf); }
private void UpdateDetail(string masterConfig, UpdateCategory cat) { UpdateThread updateThread = new UpdateThread(this, cat); updateThread.MasterConfig = masterConfig; updateThread.ThreadProc(); }
Это - обработка вызовов. Когда я нажму во второй раз кнопки обновления, когда это выдаст исключение, можно ли помочь мне?Большое спасибо.