毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> net技术 >> 正文

retrievevirtualitem事件处理函数是发生在需要显示未加载进界面项目的时候吧

更新时间:2012-10-27:  来源:毕业论文

感觉virtual模式是这样的和一个数据域绑定,显示范围是virtualsize个项目,实际并不加载到界面,当需要显示时,加载要显示的项目

1、上述理解正确否?
2、retrievevirtualitem事件处理函数是发生在需要显示未加载进界面项目的时候吧?是UI线程执行么?
3、我的程序设计,后台线程tbk动态修改一个list实例对象(这个list实例对象即为listview绑定的数据域),virtualsize=list.count动态变化,使用monitor对后台tbk线程和主线程(ui线程)进行同步

代码:运动会口号 

后台线程(循环执行,周期性的更新list的内容)
monitor.enter(list);
//修改list
先list.clear();
后list.add()
再设置控件的virtualsize=list.count
monitor.exit(list);

主线程
在void OnRetriveVirtualItem(object sender, RetrieveVirtualItemEventArgs e)
{
  monitor.enter(list);
  e.Item = list[e.ItemIndex];
  monitor.exit(list);
}

问题:
【1】这样可以实现ui线程和tbk线程对共享资源list的互斥访问么?
【2】OnRetriveVirtualItem是在主线程执行么
【3】OnRetriveVirtualItem有索引超出范围的异常报出,不知是何原因
1 是
2 是
1 没看到哪里有线程安全的代码
2 是
3 线程安全问题
主线程 
在void OnRetriveVirtualItem(object sender, RetrieveVirtualItemEventArgs e) 

  monitor.enter(list); 
  e.Item = list[e.ItemIndex]; 
  monitor.exit(list); 
}

这个就是界面线程,主线程所作的

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。