我正在使用一个列表来填充Windows窗体加载中的组合框控件。大约有20,000多条记录 填充它,在这种情况下列表执行速度非常慢。
我使用线程来加速执行,但它没有填满列表 你能帮我吗
这是线程
Thread UpdateThread;
ThreadStart UpdateThreadStart = new ThreadStart(FillCombBox);
static MethodInvoker CallDataBindToDataGrid = new MethodInvoker(FilDiagtWithdatat);
我把它放在负载
中UpdateThread = new Thread(UpdateThreadStart);
UpdateThread.Name = "Update Thread";
UpdateThread.IsBackground = true;
UpdateThread.Start();
这是我的2方法
static void FillCombBox()
{
CBList = Items.GeItemsAll(1);
}
static void FilItemtWithdatat()
{
if (CBList.Count!=0)
{
MyForm.CB_Item.DataSource = ItemList;
MyForm.CB_Item.ValueMember = "ItemID";
MyForm.CB_Item.DisplayMember = "ItemName";
MyForm.CB_Item.SelectedIndex = -1;
}
}
myform:我但这一行位于顶部static ItemHome MyForm;
中
CBList:是
答案 0 :(得分:0)
我有3,000条记录存在同样的问题。我发现在循环期间将组合框中的自动完成模式转为无,然后在循环结束后将其重新打开,使其与直接查询到sql数据库一样快。希望这会有所帮助。