c#listbox控件多线程
时间: 2023-08-29 07:05:45 浏览: 134
在C#中,如果要在一个ListBox控件中显示多个线程的信息,可以使用Invoke方法将更新ListBox控件的操作委托到UI线程中。
例如,下面的示例代码演示了如何使用ListBox控件显示多个线程的信息:
```csharp
private void btnStart_Click(object sender, EventArgs e)
{
Thread thread1 = new Thread(new ThreadStart(ThreadMethod1));
Thread thread2 = new Thread(new ThreadStart(ThreadMethod2));
thread1.Start();
thread2.Start();
}
private void ThreadMethod1()
{
for (int i = 0; i < 10; i++)
{
UpdateListBox("Thread 1: " + i.ToString());
Thread.Sleep(1000);
}
}
private void ThreadMethod2()
{
for (int i = 0; i < 10; i++)
{
UpdateListBox("Thread 2: " + i.ToString());
Thread.Sleep(1500);
}
}
private void UpdateListBox(string message)
{
if (listBox1.InvokeRequired)
{
listBox1.Invoke(new Action<string>(UpdateListBox), message);
}
else
{
listBox1.Items.Add(message);
}
}
```
在这个例子中,当用户单击Start按钮时,程序会创建两个线程ThreadMethod1和ThreadMethod2,并在每个线程中循环10次,每隔1秒或1.5秒将一条消息添加到ListBox控件中。 UpdateListBox方法用于更新ListBox控件,如果需要更新操作,则通过Invoke方法将操作委托到UI线程中。
阅读全文