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

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

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

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

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

下面给出一个示列代码:

新建一个线程 
new Thread(() =>
            {
<span style="white-space:pre">		</span>//你可以在这里操作主线程加入一个等待的图标 或者 旋转的图案,呃 我是用GDI+自己画的控件,就不贴出来了.
                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();

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Material Design组件

Human Interface Guidelines —— 搜索栏(Search Bars)

3138
来自专栏双十二技术哥

Android性能优化(十)之App瘦身攻略

如果你对App优化比较敏感,那么Apk安装包的大小就一定不会忽视。关于瘦身的原因,大概有以下几个方面:

1093
来自专栏AI

如何准备电影评论数据进行情感分析

准备工作从简单的步骤开始,比如加载数据,但是对于正在使用的数据非常特定的清理任务很快就会变得很困难。您需要从何处开始,以及通过从原始数据到准备建模的数据的步骤来...

3288
来自专栏微信公众号:Java团长

从零讲Java,给你一条清晰地学习道路!该学什么就学什么!

主要学习: 1.向量,链表,栈,队列和堆,词典。熟悉 2.树,二叉搜索树。熟悉 3.图,有向图,无向图,基本概念 4.二叉搜索A,B,C类熟练,9大排序熟悉。 ...

881
来自专栏铭毅天下

干货 |《从Lucene到Elasticsearch全文检索实战》拆解实践

1、题记 2018年3月初,萌生了一个想法:对Elasticsearch相关的技术书籍做拆解阅读,该想法源自非计算机领域红火已久的【樊登读书会】、得到的每天听本...

1.9K6
来自专栏成猿之路

从零讲JAVA ,给你一条清晰地学习道路!该学什么就学什么!!

本文转载java知音

932
来自专栏DeveWork

【译】WordPress 中的50个过滤器(4):第21-30个过滤器

本文为系列第四篇,原文:50 Filters of WordPress: Filters 21-30 原文地址 在过去的两篇文章中,我们总共介绍了20个Word...

1869
来自专栏高性能分布式系统设计

Pandas 简介

Pandas 是Python的数据处理包,全名:Python Data Analysis Library 是连接 SciPy 和 NumPy 的一种工具。特色...

3345
来自专栏java思维导图

从零讲JAVA ,给你一条清晰地学习道路!该学什么就学什么!!

主要学习: 1.向量,链表,栈,队列和堆,词典。熟悉 2.树,二叉搜索树。熟悉 3.图,有向图,无向图,基本概念 4.二叉搜索A,B,C类熟练,9大排序熟悉。 ...

1385
来自专栏开源FPGA

基于basys2驱动LCDQC12864B的verilog设计图片显示

  话不多说先上图 ? 前言        在做这个实验的时候在网上找了许多资料,都是关于使用单片机驱动LCD显示,确实用单片机驱动是要简单不少,记得在FPGA...

2275

扫码关注云+社区