我是否每3秒钟从列表框中读取一行并显示在文本框中读取的项目?但我不确定我需要做些什么才能让它循环。任何帮助将不胜感激。
答案 0 :(得分:1)
由于没有大量的信息可以继续,如果我想每隔3秒阅读一次,我会怎么做:
Timer timer = new Timer(3000); // Timer in milliseconds (3 seconds)
timer.AutoReset = true; // Auto reset the timer
timer.Elapsed += (sender, args) =>
{
// 1. Read the list box
// 2. Disply read item in text box
};
timer.Start();
上面的代码将实例化一个周期为3秒的计时器,并且Elapsed事件将每3秒触发一次。
答案 1 :(得分:0)
另一种方法是使用Task Parallel Library
private readonly int _delayInMiliSeconds = 3000;
private CancellationTokenSource _token;
private bool _isStoped;
public void StartUpdate()
{
if (this._isStoped)
{
throw new InvalidOperationException();
}
this._token = new CancellationTokenSource();
this.Update();
}
public void StopUpdate()
{
if (this._isStoped)
{
throw new InvalidOperationException();
}
this._isStoped = true;
this._token.Cancel();
}
private void Update()
{
Task.Factory.StartNew(async () =>
{
while (!this._token.IsCancellationRequested)
{
await Task.Delay(TimeSpan.FromMilliseconds(this._delayInMiliSeconds), this._token.Token);
//your repeted action has to be called here
}
}, this._token.Token);
}
答案 2 :(得分:0)
您应该在一个单独的线程中执行此操作,以便UI继续工作。 了解如何使用System.Threading.Timer并根据您的需求实施它。