c#界面卡死处理方法
方法一:
设置属性:
Control.CheckForIllegalCrossThreadCalls = false;
开启一个新线程
Thread th = new Thread(() => Search(detailID.Trim()));
th.IsBackground = true;
th.Start();
public void Search(string detailID)
{
dataGridView1.DataSource =BLLBillConsume.BllGetClearMarketLog_detail(detailID);
dataGridView1.Columns[].DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomRight;//文本向右对齐
}
上面的方法不推荐,推荐以下方法:
拖一个组件backgroundWorker
设置属性:
backgroundWorker1.WorkerReportsProgress = true;
backgroundWorker1.WorkerSupportsCancellation = true;
执行用时较长的操作,
backgroundWorker1.CancellationPending是用来判断是否允许用户取消
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
dtMain = BLLBillConsume.BllGetClearMarketLog_detail(detailID);
if (!backgroundWorker1.CancellationPending)
{//退出
backgroundWorker1.CancelAsync();
}
}
Thread.Sleep(100000);只是为了模拟界面卡死 然后就显示查询到的数据
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
dataGridView1.DataSource = dtMain;
dataGridView1.Columns[].DefaultCellStyle.Alignment = DataGridViewContentAlignment.BottomRight;//文本向右对齐
//Search(detailID.Trim());
}
这个是开启线程
backgroundWorker1.RunWorkerAsync();
c#界面卡死处理方法的更多相关文章
- Delphi编程防止界面卡死的方法经验分享
Delphi编程防止界面卡死的方法经验分享! 1.循环里面防止界面卡死的方法可以使用Application.ProcessMessages: 例如下列方法: var n: Integ ...
- WPF--Dispatcher.BeginInvoke()方法使用不当导致UI界面卡死的原因分析
原文地址: http://www.tuicool.com/articles/F7reem http://blog.csdn.net/yl2isoft/article/details/11711833 ...
- Dispatcher.BeginInvoke()方法使用不当导致UI界面卡死的原因分析
原文:Dispatcher.BeginInvoke()方法使用不当导致UI界面卡死的原因分析 前段时间,公司同事开发了一个小工具,在工具执行过程中,UI界面一直处于卡死状态. 通过阅读代码发现,主要是 ...
- winform防止界面卡死的三种方法
在编程过程中经常会遇到耗时操作,这个时候如果不采取一些必要的异步操作,就会导致界面的卡死,这里以winform为例子,介绍三种方法防止界面卡死,对这几个方法稍加修改同样适用于wpf,silverlig ...
- 多线程、委托、Invoke解决winform界面卡死的问题,并带开关
一.知识点介绍 1,更新控件的内容,应该调用控件的Invoke方法. Invoke指: 在拥有控件的基础窗口句柄的线程上,用指定的参数列表执行指定委托.该方法接收一个委托类型和委托的参数,因此需要定义 ...
- C#多线程解决界面卡死问题的完美解决方案
C#多线程解决界面卡死问题的完美解决方案 文章转自http://www.sufeinet.com/thread-3556-1-1.html 问题描述: 当我们的界面需要在程序运行中不断更新数据时, 当 ...
- 使用PyQt4写界面后台程序方法总结
使用PyQt4编写界面后台程序的方法总结 一.怎么建立多线程 界面程序如果有稍微耗时一点的任务如果不使用多线程就会界面卡死,所以大多数情况会使用到多线程.PyQt4自己有多线程的机制,可以派生多线程类 ...
- C#多线程解决界面卡死问题
C#多线程解决界面卡死问题的完美解决方案 文章下最方有源码下载 问题描述:当我们的界面需要在程序运行中不断更新数据时, 当一个textbox的数据需要变化时, 对于这个问题可以先参考下我的另外一个文章 ...
- 解决centos7.x图形化界面卡死(鼠标能动,但不能点击)问题
有时会由于某些原因(CPU过热?Mem占用过高?)导致centos7.x图形界面卡死,下面是解决办法,此方法不会关闭你打开的terminal. 1. 首先top命令查看gnome-shell的PID ...
随机推荐
- Qt编写控件属性设计器8-网络采集
一.前言 上一篇文章已经打通了数据源之一的串口采集,这次要说的是网络采集,网络通信目前用的最多的是三种,TCP/UDP/HTTP,其中tcp通信又包括了客户端服务端两种,tcp通信才用了多次握手机制不 ...
- sbt配置文件
# Set the java args to high -Xmx512M -XX:MaxPermSize=256m -XX:ReservedCodeCacheSize=128m # Set the e ...
- 整理Vue.js 面试题
Vue.js 面试题整理 Vue项目结构介绍 build 文件夹:用于存放 webpack 相关配置和脚本. config 文件夹:主要存放配置文件,比如配置开发环境的端口号.开启热加载或开启gz ...
- nginx.conf文件配置明细详解
#etnx运行的用户和用户组 user nginx nginx; #工作进程数,建议设置为CPU的总核数 worker_processes ; #全局错误日志定义类型,日志等级从低到高依次为: #de ...
- Codis-FE配置启动
生成配置信息: ./codis-admin --dashboard-list --zookeeper= | tee conf/codis.json 如果当前目录下还没有创建logs文件夹,请先创建lo ...
- python,pycharm,anaconda之间的区别与联系 - python基础入门(2)
Python环境配置-Pycharm下载/Anaconda安装 中我们已经完成了 Pycharm 和Anaconda 的安装.可能对于刚接触的小伙伴还是比较懵逼的,一会python一会Anaconda ...
- MySQL(二) decimal数据默认处理
create table decimal_test(id int auto_increment PRIMARY key,score decimal(5,2) -- 取值范围是 -999.99 到 99 ...
- S3. Android 消息推送
[概要] 消息推送
- [转帖]Linux Shell常用技巧(五)
Linux Shell常用技巧(五) https://zhuanlan.zhihu.com/p/73451771 1. 变量:在awk中变量无须定义即可使用,变量在赋值时即已经完成了定义.变量的类型可 ...
- windows版mysql添加远程访问
use mysql; ##然后查看下当前连接允许情况 select host, user, authentication_string, plugin from user; ##依次执行 CREATE ...