加载消息框后,如何使流程自动启动?

时间:2019-02-06 00:50:43

标签: c# forms

因此,我制作了一个自定义的“ MessageBox”,以便在下载文件时,弹出一个带有加载gif的MessageBox。

但是问题是,它不会继续执行其余的代码,只是停止,直到该人退出该MessageBox,然后继续该过程。

我对编码还很陌生,所以我不知道要写的确切脚本。

        var output = Path.Combine(Path.GetTempPath(), fileName);
        System.Windows.Forms.MessageBox.Show($"{fileName} Will Now Start Downloading.", "Something",
                MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
        MsggBox = new Form3();
        MsggBox.ShowDialog();

      //Right Here I want the Custom MessageBox(Form3) to Pop up and continue with the script. But it just stops the whole script.

        using (System.Net.WebClient client = new System.Net.WebClient())
        {

            client.DownloadFileCompleted += (sender, args) =>
            {
                System.Windows.Forms.MessageBox.Show($"{fileName} Download Complete!", "Something",
                MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                Process.Start(output);
                _Busy = false;
            };

            client.DownloadProgressChanged += (sender, args) => progressBar1.Value = args.ProgressPercentage;
            client.DownloadFileAsync(new Uri(url), output);
        }
    }

1 个答案:

答案 0 :(得分:0)

MsgBox.ShowDialog

是阻止过程。 您可以尝试:

  1. 在其他线程中运行MsgBox.ShowDialog。

    new Thread(()=> new Form3()。ShowDialog());

  2. 先异步运行webClient,然后显示消息框。