如何每秒更改表单元素的值
本文关键字:元素 表单 何每秒 | 更新日期: 2023-09-27 18:14:06
我有一个扩展ProgressBar的类,它应该释放一个简单的计时器。
public partial class TimerBar: ProgressBar
{
public TimerBar()
{
InitializeComponent();
Value = 100;
}
...
public void Start()
{
int x = 100/Timer; // procent per second
for (i = Value; i > 0; i--) {
Value -= x;
}
}
}
如何设置Value -= x
前1秒的延时?(不应该阻止其他元素)
您可以使用windowms Timer类引发一个事件,以便从类中每秒调用一个方法。这不会阻塞线程。您将不得不重新编写您的逻辑,而不使用for循环,但它应该能够提供您需要的东西。
如果你想在代码中保持循环(因此不能使用其他答案中建议的Timer
方法),你可以使用async/await与Task.Delay
:
public async void Start()
{
int x = 100/Timer; // percent per second
for (i = Value; i > 0; i--) {
Value -= x;
await Task.Delay(1000);
}
}