主题:请问怎么跳出一个需要的死循环??
yihucong
[专家分:0] 发布于 2006-07-14 21:20:00
我有一个新问题要请教大家 请大家多多帮帮忙 讨论以下
我现在用C#写一个虚拟函数发生器的程序,具体的功能是通过软件采样编码将值通过并口送到D/A
这样就要要输出连续的波形
于是
在按下一个button以后,有一段代码是死循环在往外送数据,怎么样才能够通过按键跳出这个死循环呢?
我刚刚学C#,编程的经验也不多 还请大家多多指教!
回复列表 (共2个回复)
沙发
linxuanxu [专家分:9360] 发布于 2006-07-14 22:42:00
//您好,照我说的试试~
//建立一个窗体C#中的,然后放两个Button按钮,画的稍大一点。放一个label.
//注意Button和label控件的属性都用默认的,button1,button2,label1
//进入代码段将原有的代码删除,把下面我给出的代码粘贴上,运行~
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication2
{
public partial class Form1 : Form
{
bool isBool = true ;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
isBool = !isBool;
}
private void Form1_Load(object sender, EventArgs e)
{
button1.Text = "点击进行停止";
button2.Text = "开始死循环";
}
private void button2_Click(object sender, EventArgs e)
{
double TempNum = 0;
isBool = true;
while (isBool) {
label1.Text =Convert .ToString ( TempNum++);
System.Windows.Forms.Application.DoEvents();
button1.Focus();
}
}
}
}
//VS2005.NET
板凳
yihucong [专家分:0] 发布于 2006-07-14 23:53:00
[quote]//您好,照我说的试试~
//建立一个窗体C#中的,然后放两个Button按钮,画的稍大一点。放一个label.
//注意Button和label控件的属性都用默认的,button1,button2,label1
//进入代码段将原有的代码删除,把下面我给出的代码粘贴上,运行~
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication2
{
public partial class Form1 : Form
{
bool isBool = true ;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
isBool = !isBool;
}
private void Form1_Load(object sender, EventArgs e)
{
button1.Text = "点击进行停止";
button2.Text = "开始死循环";
}
private void button2_Click(object sender, EventArgs e)
{
double TempNum = 0;
isBool = true;
while (isBool) {
label1.Text =Convert .ToString ( TempNum++);
System.Windows.Forms.Application.DoEvents();
button1.Focus();
}
}
}
}
//VS2005.NET[/quote]
谢谢你
我原来也是这样试过的,只是在死循环 中没有 System.Windows.Forms.Application.DoEvents();
这句代码
请问一下 这句代码具体起了什么作用呢?
因为我的死循环中 是不断的输出数据 对于时间的及时性要求很高
所以想具体的请教一下 这段代码的作用 以及它的时间复杂度
衷心谢谢你
我来回复