利用线程把文本文件填充到richTextBox;防止导入大文本文件窗口假死现象
private void btnDr_Click(object sender, EventArgs e)
{
richTextBox1.Text = ""; //richTextBox控件
labelPercent.Visible = true; //显示当前行数的label
string path = "";
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.Filter = "文件文件(*.txt)|*.txt";
if (openFileDialog1.ShowDialog() != DialogResult.OK) return;
path = openFileDialog1.FileName;
new Thread((ThreadStart)delegate
{
StreamReader sr = new StreamReader(openFileDialog1.FileName, Encoding.GetEncoding("gb2312"));
int line = 0;
int lineCount = line + 1;
string strCount = "";
string strline = sr.ReadLine();
while (strline != "" && strline != null && !strline.Equals(""))
{
this.Invoke((EventHandler)delegate { this.labelPercent.Text = "已经读取 " + lineCount.ToString() + " 行"; });
this.richTextBox1.Text = this.richTextBox1.Text + strline + "\r\n";
strline = sr.ReadLine();
line++;
lineCount++;
} sr.Close(); }).Start();
}
利用线程把文本文件填充到richTextBox;防止导入大文本文件窗口假死现象的更多相关文章
- WPF非UI线程访问网络资源造成页面假死现象
公司内部一个项目是用WPF作为GUI 访问web接口的形式获取数据, 但是由于数据量比较大,也没做分页,于是就需要一个loading的控件,网上查了很多资料但都比较浅.这里完成需求后,总结一下. 首先 ...
- RabbitMQ/JAVA 客户端测试(补:利用线程)
上次进行了简单的连接测试.这次主要进行一下小小的补充.利用线程将生产者消费者代码合到一个文件中. 我是将Recv.java(消费者)文件放在一个线程里添加到Send.java(生产者)中. 代码如下: ...
- java利用线程池处理集合
java利用线程池处理集合 2018年07月23日 17:21:19 衍夏成歌 阅读数:866 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/s ...
- windows下利用线程池完成多任务的分配和运行
在做项目的过程中有时候为了提升效率,用了多线程的方法来对任务进行分割和应用,后来发现,采用线程池的方法能更好的利用线程资源来计算任务,网上有很多关于如何运行线程池的例子,msdn上也给出了对应的例子: ...
- Python的并发并行[4] -> 并发[0] -> 利用线程池启动线程
利用线程池启动线程 submit与map启动线程 利用两种方式分别启动线程,同时利用with上下文管理来对线程池进行控制 from concurrent.futures import ThreadPo ...
- 多个线程分别顺序交替打印一种不同字符abcdefg(已实现随便多少个线程打印多少个字符,利用线程池实现多线程)
下面实现多线程顺序打印字符"abcdefg": 实现Runnable接口: /** * @author: rhyme * @date: 2019-08-17 14:39 * @to ...
- Qt多线程和GUI界面假死(run()是线程的入口,就像main()对于应用程序的作用。分析QThread::exec函数的源码,旧的QMutexLocker模式其实很好用,挡住别人进入抢占资源,可照抄)good
QThread的常见特性: run()是线程的入口,就像main()对于应用程序的作用.QThread中对run()的默认实现调用了exec(),从而创建一个QEventLoop对象,由其处理该线程事 ...
- Java读写大文本文件(2GB以上)
如下的程序,将一个行数为fileLines的文本文件平均分为splitNum个小文本文件,其中换行符'r'是linux上的,windows的java换行符是'\r\n': package kddcup ...
- 谈.Net委托与线程——解决窗体假死
转自:http://www.cnblogs.com/smartls/archive/2011/04/08/2008981.html#2457370 引言 在之前的<创建无阻塞的异步调用> ...
随机推荐
- mongoDB6--查询表达式
接上一篇总结<深入查询表达式1>上一篇我们介绍了mongodb的一些表达式的深入应用.可能大家觉得有些指令比较难记,下面给大家介绍一些简洁的表达式.给大家介绍的是以下两个指令:分别是$wh ...
- 线程池Executors探究
线程池用到的类在java.util.concurrent包下,核心类是Executors,通过其不同的几个方法可产生不同的线程池. 1.生成固定大小的线程池 public static Executo ...
- JMeter基础
转载自虫师-http://www.cnblogs.com/fnng/archive/2012/12/21/2828440.html JMeter 介绍: 一个非常优秀的开源的性能测试工具. 优点:你用 ...
- bootsraps ch1
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name ...
- [转]深入浅出JSONP--解决ajax跨域问题
取不到数据! 上周客户新买了服务器,原本在旧的服务器上放着客户的Web主页信息和一个后台程序(asp.net),在客户的主页中有一个动态显示最新消息的处理,这个处理就是通过ajax异步从那个后台程序中 ...
- glusterfs——volume管理
Q: 常用的命令有哪些? 创建volume: gluster volume create NAME stripe SCOUNT replica RCOUNT transport TYPE BRICK ...
- 如何清除jboss缓存
要清除Jboss下的缓存,只要清除以下文件的所有文件就可以了:1.D:\JavaServer\jboss-4.2.2.GA\server\default\tmp2.D:\JavaServer\jbos ...
- Winsock SPI-Socks5-SSL
- windows指令
& 无条件执行&符号后面的命令: && 当&&前面的命令成功执行时,执行&&后面的命令,否则不执行: || ...
- s7-300 第一讲
s7-300的电源模块可选,s7-400必选