多线程里使用委托的问题(listview控件显示),C#环境
添加显示listview的函数
/// <summary>
/// </summary>
/// <param name="paramSessionId"></param>
/// <param name="paramUnMakedCount"></param>
private void ShowUnMakedSeesionInfo(String[] paramSessionId, Int32[] paramUnMakedCount)
{
lVShowSessionInfo.BeginUpdate();
if (lVShowSessionInfo.Items.Count > 0)
{
lVShowSessionInfo.Items.Clear();
}
//开始添加信息
int nRowCount = paramSessionId.Length;//记录的条数
for (int nRowIndex = 0; nRowIndex < nRowCount; nRowIndex++)
{
ListViewItem listViewNode = new ListViewItem(paramSessionId[nRowIndex].ToString());
listViewNode.SubItems.Add(paramUnMakedCount[nRowIndex].ToString());
lVShowSessionInfo.Items.Add(listViewNode);
}//添加完毕
lVShowSessionInfo.EndUpdate();
}
//显示到列表框
if (lVShowSessionInfo.InvokeRequired == true)
{
ShowUnMakedInfoDelegate showSessionInfo = new ShowUnMakedInfoDelegate(ShowUnMakedSeesionInfo);
this.Invoke(showSessionInfo, paramSessionId, paramUnMakedCount);
}
else
{
ShowUnMakedSeesionInfo(paramSessionId, paramUnMakedCount);
}
//////////////////////////////////////////////////
问题是:
当我程序不在主线程(创建listview控件的线程)时,调用上面的委托事件。能够正常的显示我添加到listview里面的数据。
当我处于主线程的情况下,却不能显示Add到listview里面的数据。
这是什么问题呢?我下断点在ShowUnMakedSeesionInfo函数里面,明明看到Add了5条记录进去了。但是就是没有显示在界面里。郁闷~~~~ 各位帮帮忙!!