C# 我的应用程序冻结/没有响应

C# 我的应用程序冻结/没有响应,c#,C#,我有以下代码:我正在使用DotNetZip库 private void ExtractZip(string zipPath) { ZipFile zip = ZipFile.Read(zipPath); string application = "test.exe"; zip.ExtractAll(Directory.GetCurrentDirectory(), ExtractExistingFileAction.Overwrite

我有以下代码:我正在使用DotNetZip库

    private void ExtractZip(string zipPath)
    {
        ZipFile zip = ZipFile.Read(zipPath);
        string application = "test.exe";
        zip.ExtractAll(Directory.GetCurrentDirectory(), ExtractExistingFileAction.OverwriteSilently);
        ScanApplication(application);
    }

    private void ScanApplication(string application)
    {
        if (File.Exists(application))
        {
            Main mainApp = new Main();
            mainApp.newVersion = FileVersionInfo.GetVersionInfo(application).FileVersion;
            Form2 form2 = new Form2();
            form2.ShowDialog();
            this.Close();
        }
    }
当我点击一个按钮,我的应用程序就会冻结。我不知道为什么,但如果我没有调用ScanApplicationapplication,我的应用程序不会冻结

为什么会结冰

当我点击一个按钮,我的应用程序就会冻结。我不知道为什么,但如果我没有调用ScanApplicationapplication,我的应用程序不会冻结

尽管在您发布的代码中没有显示,但几乎可以肯定的是,您正在从按钮单击事件处理程序中提取ZIP文件

事件处理程序与UI在同一线程上运行。当它忙于处理ZIP文件时,无法处理其他UI消息。因此,UI将冻结,直到ZIP处理完成

您可以使用BackgroundWorker、线程或任务来执行ZIP,这样UI线程就不会被阻塞