C#//如何使几个循环同时工作

本文关键字:工作 循环 何使几 | 更新日期: 2023-09-27 18:21:15

我已经为控制台应用程序编程一年了,我认为是时候从表单开始了。我真的不知道如何让两个循环同时工作。

有人能帮我吗?给我一个2个循环的例子,一起工作(1个从1到100计数,2个从100到200计数(两个同时,比如说2个消息框))。我一直在网上寻找这样的smth,但没有成功。

我还想知道无穷的whiles是否必须是while(5>2),或者是否有更好的方法。

提前感谢!

C#//如何使几个循环同时工作

我真的不知道如何让两个循环同时工作。

这是一个简单的问题,有一个巨大的答案,但我会尽力为您分解。

你在其基本层面上描述的问题是"我有两个不同的代码块,它们都以某种方式与用户交互。我想给用户一个印象,两个代码块都在同时运行,对用户输入做出平稳响应。"

显然,最简单的方法是编写两个程序。也就是说,使操作系统解决问题。操作系统设法让数十个不同的进程"同时"运行,所有进程都能与用户顺利交互(我们希望)。

但是有两种工艺会带来很高的成本。进程是重量级的,而且这两大块代码之间的通信成本很高。因此,假设您希望在同一程序中有两块代码。现在你做什么?

一种方法是将两块代码分别放在同一进程中各自的线程上。这似乎是一个好主意,但它本身也带来了很多问题。现在您必须担心线程安全性和死锁等等。不幸的是,只允许一个线程与用户通信。每个表单应用程序都有一个"UI"线程。如果有两个"工作者"线程运行大量代码,那么它们必须使用跨线程通信来与UI线程通信。

另一种方法是将每一大块代码分解成小片段,然后安排所有片段在UI线程上按顺序运行。调度器可以优先考虑用户交互,任何特定的微小工作都不会阻塞并使UI线程无响应。

这是我建议你探索的最后一个技巧。我们在C#5中做了很多工作,使用这种风格编写程序变得更容易。

请参阅http://msdn.microsoft.com/en-us/async了解有关此新功能的更多信息。

不确定这是否是关于两个循环的意思。

无限循环是指表达式为5>2while (expression is true)始终返回true,并且循环外没有终止的任何内容,即return;break;

在Designer视图中的表单上删除两个标签。然后将其添加到代码视图中:

public Form1()
{
    InitializeComponent();
    Shown += new EventHandler(Form1_Shown);
}
void Form1_Shown(object sender, EventArgs e)
{
    for (int i = 1; i <= 100; i++)
    {
        label1.Text = i.ToString();
        // "Second loop"
        label2.Text = (i + 100).ToString();
        Update();
        System.Threading.Thread.Sleep(10);
    }
}

你会得到两个数字同时计数。1-100的一个。另一个是101-200。

这个?

for (int i = 1; i <= 100; i++)
{
    //..
    for (int i2 = 100; i2 <= 200; i2++)
    {
        //..
    }
}