关于Application.DoEvents()==转】的更多相关文章

最近做了一个个人数字图书馆管理系统,因为牵扯到电脑文件的扫描,想做一个实时显示当前扫面文件的功能,就类似于360文件扫描时的效果,本来打算用多线程来实现,但是方法太多没有实现,后来在程序中进行控制,由于文件太多,出现了假死现象,就连自己定义好的Timer计时器都出出现了假死,所以这个问题必须解决,随后在座的过程中,突然发现了Application.DoEvents(),使用了一下,相爱过很好,解决了自己遇到的问题.本文主要把Application.DoEvents()方法做个介绍. 记得第一次使…
Visual Studio里的摘要:处理当前在消息队列中的所有 Windows 消息. 交出CPU控制权,让系统可以处理队列中的所有Windows消息,比如在大运算量循环内,加Application.DoEvents可以防止界面停止响应,因为winform的消息循环是一个线程来处理,那么假如你的某个操作比较耗时,那么消息处理得等你这个耗时操作做完了才能继续,而Application.DoEvents方法就是允许你在耗时操作的内部调用它,而去处理消息队列中的消息.像鼠标移动鼠标点击都是window…
原文地址:http://blog.csdn.net/weinierbian/article/details/6231589 Application.DoEvents()的作用:处理所有的当前在消息队列中的Windows消息. private void button1_Click(object sender, EventArgs e) { ; i < ; i++) { label1.Text = i.ToString(); Application.DoEvents(); } } 测试了一下,没有A…
今天,在按照书上的一个winform例子做练习(实则就是边看边抄了一遍...)的时候,看到Application.DoEvents()这个方法,但是并不明白这个方法是做什么用的.只知道不用这个方法的话,在循环做耗时操作的时候,窗口ui绘制会出现问题. 于是在网上查找了一下,但是头昏脑涨的,那些理论和概念对我来讲,有点难懂.但是眼前我只是想理解这个方法的作用,于是便按照自己的理解去浅显的给它作出解释. private void btnCopy_Click(object sender, EventA…
最近做了一个文件上传的模块,因为牵扯到电脑文件的扫描,想做一个实时显示当前扫面文件的功能,就类似于360文件扫描时的效果,本来打算用多线程来实现,但是方法太多没有实现,后来在程序中进行控制,由于文件太多,出现了假死现象,就连自己定义好的Timer计时器都出出现了假死,所以这个问题必须解决,随后在座的过程中,突然发现了Application.DoEvents(),使用了一下,效果很好,解决了自己遇到的问题.本文主要把Application.DoEvents()方法做个介绍. 记得第一次使用Appl…
记得第一次使用Application.DoEvents()是为了在加载大量数据时能够有一个数据加载的提示,不至于系统出现假死的现象,当时也没有深入的去研究他的原理是怎样的,结果在很多地方都用上了Application.DoEvents(),今天看到了关于这方面的一些文章,知道我以前有些用法是不当的,有些地方需要慎用Application.DoEvents().首先我们先看看在循环比较大的程序中,它的作用还是不错的,起到了一个实时响应的效果,例如: for (int q = 0; q < 1000…
Self-Host   寄宿Web API 不一定需要IIS 的支持,我们可以采用Self Host 的方式使用任意类型的应用程序(控制台.Windows Forms 应用.WPF 应用甚至是Windows Service)作为宿主. 方法: Nuget上安装Microsoft.AspNet.WebApi.SelfHost库 或者 OWIN来承载WebAPI服务 或者 引用: System.Net.Http.dll C:\Program Files (x86)\Microsoft ASP.NET…
private void Add() { ; i < ; i++) { Button button = new Button(); button.Width = ; button.Height = ; panel1.Controls.Add(button); Application.DoEvents();//此处用的话会导致问题 } } private void button1_Click(object sender, EventArgs e) { Add(); } ; private void…
记得第一次使用Application.DoEvents()是为了在加载大量数据时能够有一个数据加载的提示,不至于系统出现假死的现象,当时也没有深入的去研究他的原理是怎样的,结果在很多地方都用上了Application.DoEvents(),今天看到了关于这方面的一些文章,知道我以前有些用法是不当的,有些地方需要慎用Application.DoEvents().首先我们先看看在循环比较大的程序中,它的作用还是不错的,起到了一个实时响应的效果,例如: for (int q = 0; q < 1000…
首先将以下代码放到Button事件里面: private void btnStart_Click(object sender, EventArgs e)  {      for (int q = 0; q < 100000; q++)      {          textBox1.Text = q.ToString();      }  } 你会发现当点击Start按钮后,循环会一直进行,此时窗体会出现假死的状态,如:无法拖动.直到循环结束,textBox1中才会显示出结果.如何解决窗体的假…
Application.DoEvents()的最大作用就是时时响应, 可以看做是个线程的一个封装 private void button1_Click(object sender, EventArgs e) { for (int i = 0; i < 990000; i++) { textBox1.Text = i.ToString(); Application.DoEvents();//时时响应文本框中的值 } } 但是不要滥用DoEvents(); 性能比较低…
Visual Studio里的摘要:处理当前在消息队列中的所有 Windows 消息. 交出CPU控制权,让系统可以处理队列中的所有Windows消息 比如在大运算量循环内,加Application.DoEvents可以防止界面停止响应 因为winform的消息循环是一个线程来处理,那么假如你的某个操作比较耗时,那么消息处理得等你这个耗时操作做完了才能继续,而Application.DoEvents方法就是允许你在耗时操作的内部调用它,而去处理消息队列中的消息. 像鼠标移动鼠标点击都是windo…
该方法可以处理当前队列的消息,比如一个for循环 5000次 向TextBox中追加文本,那肯定会假死一会儿的. 此时便可使用Application.DoEvents()来处理队列的信息. 简单说下使用Application.DoEvents() 和 不使用Application.DoEvents() 的区别: 不使用Application.DoEvents(): 循环5000次的话,界面会假死一会儿,然后等待for循环完全结束后然后显示界面. 使用Application.DoEvents():…
关于Application.DoEvents()的小研究 在MSDN中的备注是: 当运行 Windows 窗体时,它将创建新窗体,然后该窗体等待处理事件.该窗体在每次处理事件时,均将处理与该事件关联的所有代码.所有其他事件在队列中等待.在代码处理事件时,应用程序并不响应.例如,当将另一窗口拖到该窗口前面时,该窗口不重新绘制. 如果在代码中调用 DoEvents,则您的应用程序可以处理其他事件.例如,如果您有向 ListBox 添加数据的窗体,并将 DoEvents 添加到代码中,那么当将另一窗口…
When you run a Windows Form, it creates the new form, which then waits for events to handle. Each time the form handles an event, it processes all the code associated with that event. All other events wait in the queue. While your code handles the ev…
Application.DoEvents()的作用:处理所有的当前在消息队列中的Windows消息. private void button1_Click(object sender, EventArgs e) { for (int i = 0; i < 10000; i++) { label1.Text = i.ToString(); Application.DoEvents(); } } 测试了一下,没有Application.DoEvents()的时候,Label基本处于假死机状态,最后显…
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Windows.Forms; namespace MyCommanHelper { public class ApplicationHelper { /// <summary> /// 线程只运行一次 /// </summary> ///…
我们写一个textbox,让其依循环递增,但每次都会出现假死现象,等循环结束后,变为最终值.今天总结一下: private void button3_Click(object sender, EventArgs e) { for (int i = 0; i < 10000; i++) {           textBox1.Text = i.ToString();     } } Windows 窗体应用程序运行时,它将创建一个新的窗体,然后该窗体等待需要处理的事件.该窗体在每次处理某个事件(…
Application.DoEvents()的作用:处理所有的当前在消息队列中的Windows消息. private void button1_Click(object sender, EventArgs e) { ; i < ; i++) { label1.Text = i.ToString(); Application.DoEvents(); } } 测试了一下,没有Application.DoEvents()的时候,Label基本处于假死机状态,最后显示一个9999,加上后会数字变换正常显…
Q1.  如何使单元格不可编辑? A:设置 ReadOnly 属性,可以设置的对象包括 DataGridViewRow(行).DataGridViewColumn(列).DataGridViewCell(单元格)以及自身 DataGridView 对象均可设置 ReadOnly 属性来限制单元格的编辑状态. 扩展:需要注意的是,当 DataGridView 通过 DataSource 绑定数据自动生成行列时,如果直接在 Form 的构造函数初始化界面 InitializeComponent 后直…
public partial class ucBloodLabs { public delegate void ShowBloodEvent(); public ShowBloodEvent ShowBloodData; } public partial class ucDiabeticLab { public delegate void ShowCurrentDataEvent(); public ShowCurrentDataEvent ShowCurrentData; } public p…
Background 项目里要求将一个HTML页面(支付结果)生成pdf文档.页面有图片,有表格,貌似开源的iTextSharp应付不了. 在一番搜索之后,找到了wkhtmltopdf,一个命令行的开源转换工具,支持指定url或本地html file的路径,试用后效果不错,还特意用wkhtmltopdf写了一个工具将博客园的帖子备份pdf到本地,后续有空把这个工具分享出来 But,发给客户测试两天运行效果不太理想,出现一些未知错误,而且奇怪的是在测试环境没问题,正式环境却频繁出错.最后客户放弃这…
C# 操作excel //导出Excel        private void ExportExcel(string fileName, System.Data.DataTable myDGV, string title)        {            string saveFileName = "";            System.Windows.Forms.SaveFileDialog saveDialog = new System.Windows.Forms.S…
VB6与VB.NET对照表 VB6.0 VB.NET AddItem Object名.AddItem Object名.Items.Add ListBox1.Items.Add ComboBox1.Items.Add Abs 函数 System.Math.Abs 方法 API 函数关系 Microsoft Win32和Microsoft .NET Framework API的对应 App.Path 等 1.   System.Reflection.Assembly.GetExecutingAsse…
一个基于c#的点对点局域网文件传输小案例,运行效果截图 //界面窗体 using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.IO;using System.Linq;using System.Text;using System.Threading;using System.Threading.Task…
文章有点水,和前几篇没有太大区别,但是单线程处理大文件导出会非常耗时间,用到多线程才能更加合理的利用资源.大文件也可能会超出excel工作表范围.这里也有相应处理 参考:用DataGridView导入TXT文件,并导出为XLS文件 参考:c#多线程介绍(上) private void button1_Click(object sender, EventArgs e) { string fileName = ""; openFileDialog1.Multiselect = true;…
使用 DataGridView 控件,可以显示和编辑来自多种不同类型的数据源的表格数据.也可以导出.txt,.xls等格式的文件.今天我们就先介绍一下用DataGridView把导入txt文件,导出xls文件... using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using…
--------------201507160917更新--------------- 无意中发现标准消息框在Windows7是有声音的,只是在Windows server 2008(R2)无声,而我用的刚好是后者,所以误以为是MessageBeep API在所有NT6系统都不工作造成~汗,有人在stackoverflow也提过这问题.但我仍然决定使用PlaySound API,不做修改 将声音处理交给ProcessIcon方法负责.之前考虑松耦合,所以将MessageBoxIcon和声音分开处…
VB6.0和VB.Net的对照表 VB6.0 VB.NET AddItem Object名.AddItem Object名.Items.Add ListBox1.Items.Add ComboBox1.Items.Add Abs 函数 System.Math.Abs 方法 API 函数关系 MicrosoftWin32和Microsoft .NET Framework API的对应 App.Path 等 1. System.Reflection.Assembly.GetExecutingAsse…
bool stop; private void button3_Click(object sender, EventArgs e) { if(button3.Text=="线程池") { stop = false; button3.Text = "停止操作"; ThreadPool.SetMaxThreads(Convert.ToInt32(numericUpDown1.Value), Convert.ToInt32(numericUpDown1.Value));…