我创建了一个具有无限循环的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)
{
}
}
}
我的问题是无限循环在这两个程序中是如何工作的?
答案 0 :(得分:3)
您的C#程序是一种形式。 Windows希望表单能够处理事件(例如告诉它关闭),但它不能,因为它处于无限循环中。
如果无限循环在自己的线程中,或者你编写了一个C#控制台应用程序而不是基于表单的应用程序,我认为它的行为更像你的C.