大数据插入CMFCListCtrl如何使界面不假死?
是这样的,程序大概平均每秒要向list插入1000多条数据,是逐条插入,即收到1条就向list插一条。原先逻辑是,开了一个工作线程是做接收、处理数据然后将得到的数据一条条sendmessage至listview窗口上,然后在主线程中进行InsertItem的操作,类似:
UINT MonitorDataThread(LPVOID lpVoid)
{
DWORD dwDCCount = GetDataCacheCount();//某一刻得到数据个数
for(DWORD dwDCIndex = 0; dwDCIndex < dwDCCount; ++dwDCIndex)
{
//处理得到数据
.......
//逐条发送数据
SendMessage(....);
}
}
然后在主线程中,
void UpdateView(MonitorViewData* pData)
{
InsertItem(....);//插入数据
}
现在的问题,这样的思路写出来的效果是,插入过程中界面卡死,插入完后才恢复正常。请问有没有很好的解决方案可以避免?