在c exe和c#exe中执行无限循环

时间:2013-08-08 06:40:58

标签: windows exe

我创建了一个具有无限循环的c程序。它运行正常。我还创建了具有无限循环的c#程序。虽然表单运行,后面的程序进程停止响应。为什么两者表现不同? 以下是代码

#include<stdio.h>

int main()
{
    int i;
    for(i=0;i>=10;i++){
        printf("%d",i);
        }
        return 0;
}

c#program:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{




public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

    private void button1_Click(object sender, EventArgs e)
    {
        int i=10;
        while (i > 1)
        {
            //do nothing
        }
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }
}

}

我的问题是无限循环在这两个程序中是如何工作的?

1 个答案:

答案 0 :(得分:3)

您的C#程序是一种形式。 Windows希望表单能够处理事件(例如告诉它关闭),但它不能,因为它处于无限循环中。

如果无限循环在自己的线程中,或者你编写了一个C#控制台应用程序而不是基于表单的应用程序,我认为它的行为更像你的C.