我想实现的功能很简单,就是单击button时,窗体中有个label控件,让它循环显示1-10000。
代码如下:
public partial class Form9 : Form
{
public Form9()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
new Thread((ThreadStart)delegate()
{
for (int i = 0; i < 10000; i++)
{
label1.Invoke((MethodInvoker)delegate()
{
label1.Text = i.ToString();
});
}
}).Start();
}
}
}问题是: 在vs中 ,点启动调试(F5),窗体有假死现象,label控件卡在那里,最后显示99999。
但是直接到 bin\debug 目录下运行 应用程序, label快速依次地循环显示0-99999.窗体也没有假死。
这是什么原因,难道调试状态下和程序真实的运行环境不一样?
代码如下:
public partial class Form9 : Form
{
public Form9()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
new Thread((ThreadStart)delegate()
{
for (int i = 0; i < 10000; i++)
{
label1.Invoke((MethodInvoker)delegate()
{
label1.Text = i.ToString();
});
}
}).Start();
}
}
}问题是: 在vs中 ,点启动调试(F5),窗体有假死现象,label控件卡在那里,最后显示99999。
但是直接到 bin\debug 目录下运行 应用程序, label快速依次地循环显示0-99999.窗体也没有假死。
这是什么原因,难道调试状态下和程序真实的运行环境不一样?
解决方案 »
- 传递用户名的简单办法
- asp.net mvc
- c#的一个登陆问题
- datagridview显示行数的问题
- 为什么同时取得同一个窗体的句柄不一样???
- 高分求局域网聊天程序源代码
- 如何获取GataGrid控件中的数据
- 如何使用正则表达式从HTML中提取网页内容(如超链接信息) 目的:生成RSS
- EnterpriseLibrary.ExceptionHandling问题
- 我在使用SmtpMail类编写邮件发送程序的时候,使用Send()方法,怎么在我的邮箱里受不到邮件呢,我是向[email protected]发送的,是
- 这个是不是label控件?
- WebRequest相关的操作,如果不调用Close会不会有问题
private int MAX_COUNT = 10000;
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
new Thread((ThreadStart) delegate
{
for(int i=0;i<MAX_COUNT;i++)
{ label1.Invoke((MethodInvoker) delegate
{
label1.Text = i.ToString();
});
}
}).Start();
}
{
for(int i=0;i<MAX_COUNT;i++)
{ label1.Invoke((MethodInvoker) delegate
{
label1.Text = i.ToString();
});
Thread.Sleep(5);
}
}).Start();