前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >本周博客--WinForm线程初步 2014-10-31 09:15 54人阅读 评论(0) 收藏

本周博客--WinForm线程初步 2014-10-31 09:15 54人阅读 评论(0) 收藏

作者头像
GuZhenYin
发布2018-01-04 18:51:07
4540
发布2018-01-04 18:51:07
举报
文章被收录于专栏:GuZhenYin

嗯,WinForm作为一个比较程序的微软的技术已经为我们服务了很久很久,在技术不断更新的今天WinForm虽显老态龙钟但是在客户端快速开发中,它的地位还是无可取代的

今天就来分享一下WinForm中的线程使用问题.

嗯,我们的程序一般都是需要和数据库进行交互的,那么网络的交互和大数据量的后台处理如果是在主线程进行处理,那么肯定会导致程序的假死(也就是界面卡住不动),作为一个用户体验良好的程序,这一点是必须杜绝的,对于这个问题,用子线程来处理就会方便很多.

值得注意的是,线程间的切换会占用较大的CPU计算,切换的方法,时间需要自己把握.

下面给出一个示列代码:

代码语言:javascript
复制
新建一个线程 
代码语言:javascript
复制
new Thread(() =>
            {
代码语言:javascript
复制
<span style="white-space:pre">		</span>//你可以在这里操作主线程加入一个等待的图标 或者 旋转的图案,呃 我是用GDI+自己画的控件,就不贴出来了.
代码语言:javascript
复制
                byte[] by = WcfOperateService.....//这里是访问WCF服务,获取到数据
                object o = CompressionUtility.DecompressObject(by);//得到数据后,切换到主线程

                    if (this.IsHandleCreated) //判断主线程是否有句柄(PS:这个判断具体什么原理我也不清楚,嗯..希望大神能解答一下)
                    {
                        this.Invoke(new Action(() =>  //在主线程实现一个匿名委托,根据得到的数据,在界面上进行反映.
                        {
                            if (listApp.Count <= Pagecount)
                            {
                                btnPageUp.Enabled = false;
                                btnPageDown.Enabled = false;
                            }
                            else
                            {
                                btnPageDown.Enabled = true;
                                btnPageUp.Enabled = false;
                            }

                           this.ShowAppControl();
                        }));
                    }

                }

            }).Start();

嗯,以上就是..我一遍写只需要执行一遍的匿名线程+匿名委托

版权声明:本文为博主原创文章,未经博主允许不得转载。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2014-10-31 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档