wince窗体假死

来源:互联网 发布:碳微球 知乎 编辑:程序博客网 时间:2024/06/02 12:18

先在这里记录下,这个窗体假死的事情。

场景是这样的,c# winform或者wince设备在页面跳转之后,会加载一个数量非常大的list数据到datatable中,在跳转过程中,UI窗体在渲染的过程中,加载大量的数据就会造成窗体假死的现象。

解决的大体思路:建立两个线程,一个线程用来作为UI线程渲染窗体空间,另外一个线程用来作为非UI线程来加载数据集。

解决的详情代码:.

//声明一个委托类型public delegate void SearchEventHandler(int queryType, string text);public void searchFromOtherController(int queryType, string text) {    Thread newThread = new Thread(new ThreadStart(delegate { handlerForThreadStart(queryType, text); }));     newThread.Start();}public void handlerForThreadStart(int queryType, string text){    SearchEventHandler handler = new SearchEventHandler(searchList);    this.BeginInvoke(handler, queryType, text);}////声明一个委托类型 192//public delegate void SearchEventHandler(int queryType, string text);////定义一个委托对象////public SearchEventHandler handler = new SearchEventHandler(searchList);//////给委托对象赋值////handler = searchList;////其他控制器调用该方法//public void searchFromOtherController(int queryType, string text)//{//    Thread notuithread = new Thread(new ThreadStart(handlerForThreadStart));//    notuithread.Start();//}//public void handlerForThreadStart()//{ //    SearchEventHandler handler = new SearchEventHandler(searchList);//    handler();//}




0 0
原创粉丝点击