gpt4 book ai didi

c# - 使用另一个线程将数据从数据库加载到组合框

转载 作者:搜寻专家 更新时间:2023-10-30 20:20:13 26 4
gpt4 key购买 nike

我想在从数据库表中获取一列后在组合框中添加项目。为了提高性能,我将此任务放在新创建的线程中

for (int i = 0; i < dataTable.Rows.Count; i++)
{
comboBox.Items.Add(dataTable.Rows[i][0].ToString());
}

但它给出了以下异常:

“跨线程操作无效”

我搜索了它并尝试在不同的方法、委托(delegate)的帮助下解决这个问题。我试图将整个 dataTable 传递给另一种方法,但无法解决问题。

请问我该如何解决?

最佳答案

只需将代码包装在传递给 BeginInvoke 的委托(delegate)中:

comboBox.BeginInvoke(
(Action)(() =>
{
for (int i = 0; i < dataTable.Rows.Count; i++)
{
comboBox.Items.Add(dataTable.Rows[i][0].ToString());
}
}));

这样您就可以将更新转发到 GUI 线程,因为它是唯一允许在 GUI 上进行更改的线程。

关于c# - 使用另一个线程将数据从数据库加载到组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9956785/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com