c# - 如何通过使用 C# 单击按钮来中止 while 循环

标签 c# loops while-loop break

我有一个使用 while 循环显示数字的函数,但我想通过单击按钮停止使用 c# 以随机变量值执行 while 循环。

例如:

private void FrqSent()
{
    int i = 1;
    while (i <= 5)       
    {  
        i = i + 1;
    }  
}

最佳答案

这是一个关于如何使用 Backgroundworker 完成任务的简单示例:

public partial class Form1 : Form
{
    private int i = 1;

    public Form1()
    {
        InitializeComponent();
    }

    private void FrqSent()
    {           
        while (i <= 500000000)
        {
            if (backgroundWorker1.CancellationPending)
            {
                break;
            }
            else
            {
                i = i + 1;
            }
        }
    }

    private void button1_Click(object sender, EventArgs e)
    {
        backgroundWorker1.RunWorkerAsync();
    }

    private void button2_Click(object sender, EventArgs e)
    {
        backgroundWorker1.CancelAsync();
    }

    private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
    {
        FrqSent();
    }

    private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
    {
        MessageBox.Show(i.ToString());
    }
}

只需创建一个新的 Windows 窗体项目并添加一个 backgroundworker 对象以及 2 个按钮。您必须手动设置 DoWork、RunWorkerCompleted 和 Click 事件。

编辑:不要忘记将 BackgroundWorker 的 WorkerSupportsCancellation 属性设置为 true。

关于c# - 如何通过使用 C# 单击按钮来中止 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36623540/

相关文章:

c# - 带有 Html.ActionLink 的绝对(外部)URL

r - R 中的两个 for 循环

java - 使用循环引用不同的editText ID

java - RLE压缩

excel - 暂停 VBA 循环,直到重新计算工作表

php - 订购 while 循环数据

Java Continuous loop(循环不等待)

c# - C# 中的多个子和父窗体

c# - 使用 View 的 MySQL 数据库报告

c# - 失败 - 下载由 Ionic.Zip.dll 制作的 zip 文件时出现网络错误