使用线程,防止当前程序被阻塞
在编写Windows Form程序时有时需要编写一个处理大事件的函数,这导致了程序的运行时间变得很长,这时问题就出现了,当程序没有处理完毕之前当前窗体被锁死了,而且用户如果此时点击窗体的其他部分,便会出现没有响应的标识,这时用户就会以为程序死了,而去关闭程序,如果我们没有对这种操作作相应的处理,很容易导致数据出现错误。这时我们可以采用另开一个线程的方法来处理时间比较长的程序,这样当前窗体就不会被锁死,预估计一下处理时间需要的时间,然后还可以根据这个时间做一个进度条的显示,让用户了解到程序处理的进度,就会给用户一个很良好的感觉。
下面是一个另开线程的小例子,并有进度条显示。
我们用到了System.Threading命名空间中的Thread类来创建一个线程对象,然后将线程的ThreadStart方法代理重新指向到我们要处理的函数即可,然后用它的IsBackground属性将其设置为后台线程,防止被用户误操作而被杀掉,然后调用Thread对象的Start来启动这个线程即可。
使用线程的小例子
转载于:https://www.cnblogs.com/Bear-Study-Hard/archive/2006/04/14/374957.html
使用线程,防止当前程序被阻塞相关推荐
- 15分钟读懂进程线程、同步异步、阻塞非阻塞、并发并行,太实用了!
作者:Martin cnblogs.com/mhq-martin/p/9035640.html 基本概念 1 进程和线程 进程(Process): 是Windows系统中的一个基本概念,它包含着一个运 ...
- 15分钟读懂进程线程、同步异步、阻塞非阻塞、并发并行
基本概念 1 进程和线程 进程(Process): 是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源.一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括一个或多个线程 ...
- 进程线程、同步异步、阻塞非阻塞、并发并行
一.进程和线程 1️⃣[进程Process]是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源.一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括一个或多个线程. 进程 ...
- 进程线程、同步异步、阻塞非阻塞、并发并行、多线程
一: 进程和线程 1: 进程(Process) 是Windows系统中的一个基本概念,它包含着一个运行程序所需要的资源.一个正在运行的应用程序在操作系统中被视为一个进程,进程可以包括一个或多个线程.线 ...
- 线程通信之生产者消费者阻塞队列版
线程通信之生产者消费者阻塞队列版 ProdConsumer_BlockQueueDemo.java import java.util.concurrent.ArrayBlockingQueue; im ...
- Java多线程之线程通信之生产者消费者阻塞队列版
Java多线程之线程通信之生产者消费者传统版和阻塞队列版 目录 线程通信之生产者消费者传统版 线程通信之生产者消费者阻塞队列版 1. 线程通信之生产者消费者传统版 题目: 一个初始值为零的变量,两个线 ...
- Linux 线程并发拷贝,【Linux】线程并发拷贝程序
据说大连某211高校的李教授越来越重口,不仅延续要求他所带的每一个本科班,都要写一份线程并发拷贝程序的传统,而且还开始规定不能用Java语言写作,导致我之前写的<[Java]线程并发拷贝程序&g ...
- linux+kill+进程和线程,什么是程序,进程和线程?三者之间有何关系?
进程 进程与线程的历史 进程与线程之间的关系 重点 进程 和 线程的概念 进程和程序关系 cpu在执行程序时什么叫进程 swap 内存的缺页异常 大的异常 小的异常 内存映射mmap 内存泄露 tas ...
- CPU核心数线程数、程序进程线程、并发并行的简单理解
CPU核心数线程数.程序进程线程.并发并行.简单理解和区分 这篇文章是对上述感念的简单理解,想深入研究可以看看<计算机组成原理> CPU的核心数 线程数 当我们买电脑的时候,会看到CPU的 ...
- 对话框中WaitForSingleObject等待线程退出导致程序阻塞的原因及解决
今天在调试程序中发现了程序中出现的一个问题,具体如下: 在对话框中新建一个线程worker thread,当用户点击cancel时,通知该线程函数退出,同时用WaitForSingleObject等待 ...
最新文章
- Java 理论与实践: 流行的原子——新原子类是 java.util.concurrent 的隐藏精华(转载)...
- 自动化测试框架搭建三python环境安装selenium和手动下载安装selenium的方法
- ASCSDK-------通用包接入文档(COCOS篇)
- linux 软件安装命令
- 【初识】汽车诊断协议 UDS / DoIP
- Servlet的生命周期
- 【Linux】SCP 拷贝命令
- 【自动驾驶传感器融合系列】01自动驾驶中常用的传感器
- asp.net学习心得总结
- 阿里云oss中解决IE浏览器下载中文文件时乱码问题
- mscorsvw.exe关闭方法
- 移动端VUE实现一周课程表
- 使用ssh上传文件到服务器
- jssdk 获取微信收货地址_微信JSSDK获取当前地理位置信息
- JavaWeb web.xml配置详解
- 网页抓取及信息提取(三)
- word标尺灰色_如何在Microsoft Word中更改标尺测量单位
- 木木璐(林璐)来报到
- C语言前驱和后继字母,数据结构(c语言)3.ppt
- python识别火车票二维码_Python实现查询12306火车票信息
热门文章
- 使用 vue-i18n 切换中英文
- 阿里云天池 Python训练营Task5:Python训练营测试 学习笔记
- Java DSL简介(收集整理)
- 【HAVENT原创】Node Express API 通用配置
- 比特币,以太坊......区块链技术真的被认同了吗?
- 飞行模式的开启和关闭
- linq to sql报错,
- SQL WITH NOCHECK 和 CLUSTERED | NONCLUSTERED
- 工作失职的处理决定_工作失职的处理决定
- leetcode1177. 构建回文串检测(前缀和)