在编写Windows Form程序时有时需要编写一个处理大事件的函数,这导致了程序的运行时间变得很长,这时问题就出现了,当程序没有处理完毕之前当前窗体被锁死了,而且用户如果此时点击窗体的其他部分,便会出现没有响应的标识,这时用户就会以为程序死了,而去关闭程序,如果我们没有对这种操作作相应的处理,很容易导致数据出现错误。这时我们可以采用另开一个线程的方法来处理时间比较长的程序,这样当前窗体就不会被锁死,预估计一下处理时间需要的时间,然后还可以根据这个时间做一个进度条的显示,让用户了解到程序处理的进度,就会给用户一个很良好的感觉。

下面是一个另开线程的小例子,并有进度条显示。

我们用到了System.Threading命名空间中的Thread类来创建一个线程对象,然后将线程的ThreadStart方法代理重新指向到我们要处理的函数即可,然后用它的IsBackground属性将其设置为后台线程,防止被用户误操作而被杀掉,然后调用Thread对象的Start来启动这个线程即可。
    使用线程的小例子

转载于:https://www.cnblogs.com/Bear-Study-Hard/archive/2006/04/14/374957.html

使用线程,防止当前程序被阻塞相关推荐

  1. 15分钟读懂进程线程、同步异步、阻塞非阻塞、并发并行,太实用了!

    作者:Martin cnblogs.com/mhq-martin/p/9035640.html 基本概念 1 进程和线程 进程(Process): 是Windows系统中的一个基本概念,它包含着一个运 ...

  2. 15分钟读懂进程线程、同步异步、阻塞非阻塞、并发并行

    基本概念 1 进程和线程 进程(Process): 是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源.一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括一个或多个线程 ...

  3. 进程线程、同步异步、阻塞非阻塞、并发并行

    一.进程和线程 1️⃣[进程Process]是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源.一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括一个或多个线程. 进程 ...

  4. 进程线程、同步异步、阻塞非阻塞、并发并行、多线程

    一: 进程和线程 1: 进程(Process) 是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源.一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括一个或多个线程.线 ...

  5. 线程通信之生产者消费者阻塞队列版

    线程通信之生产者消费者阻塞队列版 ProdConsumer_BlockQueueDemo.java import java.util.concurrent.ArrayBlockingQueue; im ...

  6. Java多线程之线程通信之生产者消费者阻塞队列版

    Java多线程之线程通信之生产者消费者传统版和阻塞队列版 目录 线程通信之生产者消费者传统版 线程通信之生产者消费者阻塞队列版 1. 线程通信之生产者消费者传统版 题目: 一个初始值为零的变量,两个线 ...

  7. Linux 线程并发拷贝,【Linux】线程并发拷贝程序

    据说大连某211高校的李教授越来越重口,不仅延续要求他所带的每一个本科班,都要写一份线程并发拷贝程序的传统,而且还开始规定不能用Java语言写作,导致我之前写的<[Java]线程并发拷贝程序&g ...

  8. linux+kill+进程和线程,什么是程序,进程和线程?三者之间有何关系?

    进程 进程与线程的历史 进程与线程之间的关系 重点 进程 和 线程的概念 进程和程序关系 cpu在执行程序时什么叫进程 swap 内存的缺页异常 大的异常 小的异常 内存映射mmap 内存泄露 tas ...

  9. CPU核心数线程数、程序进程线程、并发并行的简单理解

    CPU核心数线程数.程序进程线程.并发并行.简单理解和区分 这篇文章是对上述感念的简单理解,想深入研究可以看看<计算机组成原理> CPU的核心数 线程数 当我们买电脑的时候,会看到CPU的 ...

  10. 对话框中WaitForSingleObject等待线程退出导致程序阻塞的原因及解决

    今天在调试程序中发现了程序中出现的一个问题,具体如下: 在对话框中新建一个线程worker thread,当用户点击cancel时,通知该线程函数退出,同时用WaitForSingleObject等待 ...

最新文章

  1. Java 理论与实践: 流行的原子——新原子类是 java.util.concurrent 的隐藏精华(转载)...
  2. 自动化测试框架搭建三python环境安装selenium和手动下载安装selenium的方法
  3. ASCSDK-------通用包接入文档(COCOS篇)
  4. linux 软件安装命令
  5. 【初识】汽车诊断协议 UDS / DoIP
  6. Servlet的生命周期
  7. 【Linux】SCP 拷贝命令
  8. 【自动驾驶传感器融合系列】01自动驾驶中常用的传感器
  9. asp.net学习心得总结
  10. 阿里云oss中解决IE浏览器下载中文文件时乱码问题
  11. mscorsvw.exe关闭方法
  12. 移动端VUE实现一周课程表
  13. 使用ssh上传文件到服务器
  14. jssdk 获取微信收货地址_微信JSSDK获取当前地理位置信息
  15. JavaWeb web.xml配置详解
  16. 网页抓取及信息提取(三)
  17. word标尺灰色_如何在Microsoft Word中更改标尺测量单位
  18. 木木璐(林璐)来报到
  19. C语言前驱和后继字母,数据结构(c语言)3.ppt
  20. python识别火车票二维码_Python实现查询12306火车票信息

热门文章

  1. 使用 vue-i18n 切换中英文
  2. 阿里云天池 Python训练营Task5:Python训练营测试 学习笔记
  3. Java DSL简介(收集整理)
  4. 【HAVENT原创】Node Express API 通用配置
  5. 比特币,以太坊......区块链技术真的被认同了吗?
  6. 飞行模式的开启和关闭
  7. linq to sql报错,
  8. SQL WITH NOCHECK 和 CLUSTERED | NONCLUSTERED
  9. 工作失职的处理决定_工作失职的处理决定
  10. leetcode1177. 构建回文串检测(前缀和)