这是我的要求,我必须在计时器内部使用while循环,在单击按钮后启动应用程序后 UI被锁定,无法移动并且文本也无法在文本框中显示
下面是代码
using System;
using System.Windows.Forms;
namespace WinScreenLocked
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int Number = 0;
private void timer1_Tick(object sender, EventArgs e)
{
while (true)
{
textBox1.Text = Number.ToString();
Number++;
}
}
private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
}
}
}
答案 0 :(得分:1)
config/auth.php
通常的警告是:计时器不会非常准确,可能需要使用GC.KeepAlive(timer)
另请参阅:Why does a System.Timers.Timer survive GC but not System.Threading.Timer?
答案 1 :(得分:1)
您可以停止线程以阻止ui,即使用
System.Threading.Thread.Sleep(2000);
在2000毫秒以上等于2秒需要花费毫秒。
答案 2 :(得分:0)
由于这是Winform,因此可以使用Application.DoEvents()处理UI刷新。