как остановить программу при нажатии кнопки отмены на индикаторе выполнения c # - PullRequest
0 голосов
/ 01 сентября 2011

Я пытаюсь загрузить форму индикатора выполнения, и во время загрузки, если я нажимаю кнопку отмены, все приложение прекращает свою работу.

Ниже мой код, вызывающий форму индикатора выполнения.Мне было интересно, кто-нибудь может помочь с этим?

Loading loader = new Loading();


    private void lockButton_Click(object sender, EventArgs e)
    {
        if (this.ddCheckBox.Checked == false)
        {
            if (this.passwordtextBox.Text == "")
            {
                MessageBox.Show("Please enter a password!");
            }
            else if (this.retypeTextBox.Text == "")
            {
                MessageBox.Show("Please retype password!");
            }
            else if (this.passwordtextBox.Text == this.retypeTextBox.Text)
            {
                //details = new Details();
                details.SetPassword(this.passwordtextBox.Text);

                if (this.EncryptionComboBox.Text == "AES - 128 bit" | this.EncryptionComboBox.Text == "AES - 192 bit" | this.EncryptionComboBox.Text == "AES - 256 bit")
                {
                    this.Hide();

                    Thread thread = null;
                    thread = new Thread(new ThreadStart(delegate() { loader.dLabel.Text = "Locking Files..."; loader.ShowDialog(); }));
                    thread.Start();

                    details.SetEncryption(this.EncryptionComboBox.Text);

Ответы [ 2 ]

2 голосов
/ 01 сентября 2011

Для этого следует использовать BackgroundWorker вместо System.Threading.Thread.

0 голосов
/ 01 сентября 2011

Application.Restart () должен довольно хорошо его остановить;)

На полном серьезе, однако, есть тонна информации о подобных вещах на веб-сайте MSDN.Я бы использовал это, чтобы хотя бы понять, что искать.Не то чтобы вы еще этого не знали, но у него есть отличная информация о том, чтобы убедиться, что вы используете правильные термины (например, стоп против отмены) и другие подобные вещи.

http://msdn.microsoft.com/en-us/library/aa511486.aspx

Если вы отметите http://msdn.microsoft.com/en-us/library/ywkkz4s1.aspx, то вы найдете отличный ресурс, как о том, как запустить фоновый рабочий (который должен использоваться для этого), так и о том, как реализовать кнопку отмены.Укради этот код и вставь его в свою программу.Надеюсь, что это поможет!

РЕДАКТИРОВАТЬ: После осмотра немного, я думаю, код, который вы могли бы вызвать, будет выглядеть примерно так с сайта MSDN:

 private void Cancel_Click(object sender, EventArgs e)
{
    // Cancel the asynchronous operation.
    this.backgroundWorker1.CancelAsync();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...