- 浏览: 724978 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1081)
- [网站分类]1.首页原创精华.NET区(包含架构设计、设计模式)(对首页文章的要求:原创、高质量、经过认真思考并精心写作) (0)
- [网站分类]2..NET新手区(用于发表不合适发表在首页的.NET技术文章,包括小经验、小技巧) (1)
- [网站分类]3.非技术区(技术之外的文章,但不要涉及任何政治内容) (0)
- [网站分类]4.其他技术区 (0)
- [网站分类]5.企业信息化 (0)
- [网站分类]6.读书心得区(技术书籍阅读心得、书籍推荐) (0)
- [网站分类]7.提问区(.NET技术方面的提问) (2)
- [网站分类]8.技术转载区(.NET技术文章转载, 请注明原文出处) (0)
- [网站分类]9.求职招聘区(个人求职、企业招聘) (0)
- [网站分类]Dottext区 (0)
- [网站分类]GIS技术 (0)
- [网站分类]IT英才专区(IT职场交流) (0)
- [网站分类]SharePoint (0)
- [网站分类]博客园.NET俱乐部(俱乐部组织与活动方面的文章) (0)
- [网站分类]软件发布区(发布自己开发的代码、软件) (0)
- [网站分类]网站管理区(网站管理方面的疑问、建议、意见, 寻求管理员帮助) (0)
- [网站分类]业界新闻 (1)
- 技术 (1)
- [随笔分类]生活感悟 (10)
- [随笔分类]C# (30)
- [随笔分类]AjaxPro教程 (3)
- [发布至博客园首页] (5)
- [随笔分类]简历 (0)
- [随笔分类]Linux (2)
- [随笔分类]技术聚会 (2)
- [随笔分类]ORM (1)
- [随笔分类]php (1)
- [随笔分类]创业 (1)
- [随笔分类]奇技淫巧 (1)
- [随笔分类]计划 (1)
- [随笔分类]架构&分层 (1)
- [随笔分类]整合行销 (1)
- [随笔分类]mac (1)
- [网站分类].NET新手区 (45)
- [网站分类]非技术区 (5)
- [网站分类]招聘区 (0)
- [随笔分类]单元测试 (1)
- [网站分类]其他技术区 (3)
- [网站分类]代码与软件发布 (6)
- [网站分类]提问区 (24)
- [随笔分类]ASP.NET (2)
- [随笔分类]FAQ (12)
- [随笔分类]开发人员工具 (1)
- [随笔分类]朗志轻量级项目管理解决方案 (1)
- [网站分类]读书区 (1)
最新评论
-
天使建站:
写和乱七八糟的 不知道从哪复制过来的 还是看这里吧j ...
jquery数组 -
hyn450:
你好,我最近也想了解一下竞争情报。不知道能不能交流一下呢 ?
最近的工作 -
lattimore:
这个连接打不开了阿!
使用vnc连ubuntu desktop -
MZhangShao:
奉劝你一句,以后在Ubuntu 用apt-get安装成功的软件 ...
关于xrdp的安装设置 -
f002489:
strftime
python下datetime类型的转换
按照惯例先上个图,自己照着人家的例子写了一遍,基本上把这个弄懂了,这个控件就是省事,不懂线程原理的人也可使,ms就是厉害,生产力节节提高哈,
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--> 1using System;
2using System.Collections.Generic;
3using System.ComponentModel;
4using System.Data;
5using System.Drawing;
6using System.Linq;
7using System.Text;
8using System.Threading;
9using System.Windows.Forms;
10
11namespace BrowserDemo
12{
13 public partial class Form7 : Form
14 {
15 const int argument = 20000;
16
17 public Form7()
18 {
19 InitializeComponent();
20 }
21
22 private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
23 {
24 for(var i=0;i<int.Parse(e.Argument.ToString());i++)
25 {
26 e.Result = i;
27 (sender as BackgroundWorker).ReportProgress((int)(((double)i / (double)((int)e.Argument)) * 100),i);
28 Thread.Sleep(20);
29 if (this.backgroundWorker1.CancellationPending)
30 return;
31 }
32 }
33
34 private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
35 {
36 this.listBox1.Items.Add(e.UserState);
37 this.progressBar1.Value = e.ProgressPercentage;
38 }
39
40 private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
41 {
42 MessageBox.Show("finished");
43 }
44
45 private void button1_Click(object sender, EventArgs e)
46 {
47 if (this.backgroundWorker1.IsBusy)
48 {
49 MessageBox.Show("慢则那,等着吧");
50 return;
51 }
52 this.backgroundWorker1.RunWorkerAsync(argument);
53 this.button2.Enabled = true;
54 this.button3.Enabled = true;
55
56 }
57
58 private void button2_Click(object sender, EventArgs e)
59 {
60 MessageBox.Show("111");
61 }
62
63 private void button3_Click(object sender, EventArgs e)
64 {
65 this.backgroundWorker1.CancelAsync();
66 }
67
68 private void Form7_Load(object sender, EventArgs e)
69 {
70 this.button2.Enabled = false;
71 this.button3.Enabled = false;
72 }
73 }
74}
75
2using System.Collections.Generic;
3using System.ComponentModel;
4using System.Data;
5using System.Drawing;
6using System.Linq;
7using System.Text;
8using System.Threading;
9using System.Windows.Forms;
10
11namespace BrowserDemo
12{
13 public partial class Form7 : Form
14 {
15 const int argument = 20000;
16
17 public Form7()
18 {
19 InitializeComponent();
20 }
21
22 private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
23 {
24 for(var i=0;i<int.Parse(e.Argument.ToString());i++)
25 {
26 e.Result = i;
27 (sender as BackgroundWorker).ReportProgress((int)(((double)i / (double)((int)e.Argument)) * 100),i);
28 Thread.Sleep(20);
29 if (this.backgroundWorker1.CancellationPending)
30 return;
31 }
32 }
33
34 private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
35 {
36 this.listBox1.Items.Add(e.UserState);
37 this.progressBar1.Value = e.ProgressPercentage;
38 }
39
40 private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
41 {
42 MessageBox.Show("finished");
43 }
44
45 private void button1_Click(object sender, EventArgs e)
46 {
47 if (this.backgroundWorker1.IsBusy)
48 {
49 MessageBox.Show("慢则那,等着吧");
50 return;
51 }
52 this.backgroundWorker1.RunWorkerAsync(argument);
53 this.button2.Enabled = true;
54 this.button3.Enabled = true;
55
56 }
57
58 private void button2_Click(object sender, EventArgs e)
59 {
60 MessageBox.Show("111");
61 }
62
63 private void button3_Click(object sender, EventArgs e)
64 {
65 this.backgroundWorker1.CancelAsync();
66 }
67
68 private void Form7_Load(object sender, EventArgs e)
69 {
70 this.button2.Enabled = false;
71 this.button3.Enabled = false;
72 }
73 }
74}
75
完整的工程如下
http://files.cnblogs.com/lexus/BrowserDemo.7z
相关资源,发现msdn上写得比较还好,不过自己写一遍自己就清楚了,我发现网上的msdn,是不是和vs2008里的光盘里的那个msdn不一样,有些资源为什么在光盘上的找不到呢,等我采集程序做好了,我要把它都抓下来,占为已有,嘿嘿
http://msdn.microsoft.com/zh-cn/library/ms233672(VS.80).aspx
发表评论
-
关于分层架构中的业务实体层的使用一直不太清楚,可否指点一下?
2007-03-23 09:10 671我知道业务逻辑层又可细分为三个层次,分别是业务外观层业务规则层 ... -
xml反串行化
2007-07-02 17:23 7321using System; 2using Syste ... -
WriteXmlSchema(xsdFileName)和GetXmlSchema()输出的内容的差异
2007-07-04 19:00 881利用DataSet.ReadXml载入一个xml文件,再使用G ... -
对websharp中aspect的改进(待续)
2007-11-17 14:27 692缘起 为了在我的《朗志轻量级项目管理解决方案》项目中应用 ... -
WebSharp Aspect改进(续2)
2007-11-19 21:39 700接着上次在《朗志轻量级项目管理解决方案》中对Aspec ... -
TreeView(树形控件)中常用到的属性和事件
2007-11-19 22:22 12941.TreeView(树形控件) ... -
有没有适合的的面向对象的查询语言(Object Query Language)
2007-11-28 10:15 759在我做《朗志轻量级项目管理解决方案》的过程中,我希望 ... -
问题解答集
2007-11-29 18:11 4401 如何在源代码的目录下添加一个测试文件 ... -
FckEditor自定义按钮
2007-11-29 18:35 830目录 FckEditor自定义按钮 1 目录 ... -
GhstDoc2.1.1使用手册
2007-11-29 18:39 721目录 GhstDoc2.1.1使用手册 1 ... -
Log4net使用说明
2007-11-29 18:44 785Log4net使用说明 1 修改历史纪录 ... -
MySQLHelper类使用说明
2007-11-29 18:46 1315目录 MySQLHelper类使用说明 1 目录 ... -
NDoc1.3.1使用手册
2007-11-29 18:47 765目录 NDoc1.3.1使用手册 1 目录 ... -
程序中操作Word
2007-11-29 18:52 728目录 程序中操作Word 1 目录 2 ... -
利用SMTP服务发送电子邮件
2007-11-29 18:58 1353目录 利用SMTP服务发送电子邮件 1 目录 ... -
程序中操作Excel
2007-11-29 18:59 638目录 程序中操作Excel 1 目录 ... -
访问被拒绝:“AjaxPro”的解决方案
2007-11-29 19:01 532目录 访问被拒绝:&qu ... -
sqlserver的版本号
2008-02-27 21:01 819当你安装了sqlserver 2005之后你就可以使用sqls ... -
在安装有VS2008beta2版本的机子上使用vs2005进行部署出现问题的解决方法
2008-02-27 21:13 680我知道,2008rtm发布已经很久了,不巧的是同学在我的机子上 ... -
忙话codesmith
2008-07-28 15:01 867为什么不是闲话,因为我很忙,项目中新问题是接连不断,上一篇讲到 ...
相关推荐
在VB.NET编程中,`BackgroundWorker`组件是一个非常重要的工具,它允许我们在应用程序的主线程之外执行耗时操作,...通过实践和学习提供的"VB.net BackgroundWorker使用例子",开发者可以更好地理解和掌握这一功能。
本例子将深入讲解如何正确使用BackgroundWorker组件,包括其主要属性、方法和事件。 首先,BackgroundWorker组件有以下几个关键属性: 1. **IsBusy**:这个布尔属性用于检查BackgroundWorker是否正在执行工作。当...
在.NET框架中,`BackgroundWorker`组件是一个非常重要的工具,尤其在开发多线程应用程序时。这个组件使得在用户界面...通过深入学习和实践`BackgroundWorker`,开发者可以构建更加高效、用户体验更好的桌面应用程序。
【C# BackgroundWorker组件学习入门】 在C#编程中,有时我们需要执行一些耗时的任务,比如大数据处理、网络通信或者文件操作等。这些任务如果在主线程上执行,会导致用户界面(UI)变得无响应,影响用户体验。为了解决...
通过这个例子,我们可以学习到如何在.NET环境中有效地使用BackgroundWorker组件来创建响应式的用户界面,同时处理复杂的后台任务。了解和掌握BackgroundWorker,对于任何.NET开发者来说都是一个重要的技能,特别是在...
"101个C#例子[示例源码]"集合了学习C#时可能会遇到的各种关键概念和技术,旨在帮助初学者快速理解和掌握C#编程。 1. **数据库操作**:C#可以与各种数据库进行交互,如SQL Server、MySQL、Oracle等。通过ADO.NET框架...
这个压缩包文件“C#081212-进度条例子”很可能是包含了一个C#项目,其中详细展示了如何在Windows Forms或WPF应用中实现进度条功能的源代码示例。 在Windows Forms应用程序中,我们通常使用`ProgressBar`控件来创建...
7. **多线程**:学习如何在WinForm中使用Thread或者BackgroundWorker组件,以实现后台处理,提高程序响应性。 8. **文件操作**:读写文件是常见的需求,例子中会有如何使用File和StreamReader/StreamWriter类进行...
9. **源码示例**:压缩包中的文件如`C# winform 自动升级.rar`和`C#实现软件自动升级实例源码.rar`提供了具体的实现代码,可以从这些例子中学习如何将上述概念应用到实际项目中。 10. **安全考虑**:在设计自动更新...
总的来说,通过这样的小例子,开发者可以学习到如何在C#的Windows Forms应用程序中创建一个带有进度条的状态栏,提升用户界面的交互性和用户体验。同时,这也是一种良好的实践,展示了如何利用BackgroundWorker组件...
9. **多线程**:VB.NET支持多线程编程,例子可能包括如何启动新线程,使用Thread和BackgroundWorker类,以及同步和互斥的概念。 10. **文件和流操作**:VB.NET提供了读写文件和处理流的能力,例子可能涵盖使用...
总的来说,VB.NET的多线程功能强大且易于使用,对于初学者来说,通过简单的例子学习多线程是一个很好的起点。不过,随着项目复杂性的增加,理解并掌握线程管理、同步和通信机制至关重要,这将有助于编写出更加健壮和...
这个"winform_c#_多线程例子"项目提供了一个实用的起点,帮助开发者学习和理解如何在Winform应用程序中有效地使用多线程,提高程序性能和用户体验。通过研究这个例子,可以深入理解线程管理、UI交互、异常处理和线程...
在C#编程中,Windows Forms(WinForms)应用程序经常需要处理复杂的任务,...这个示例项目`ThreadTest`为我们提供了实践这些概念的机会,通过打开和分析项目中的代码文件,我们可以深入学习多线程在实际项目中的应用。
这个“VB.NET编程例子大全”压缩包可能包含了各种VB.NET编程的实例,帮助学习者理解并掌握VB.NET的基本概念、语法以及高级特性。 在VB.NET中,你可以学习到以下核心知识点: 1. **基本语法**:包括变量声明、数据...
通过深入学习并实践这101个VB.NET例子,开发者不仅可以巩固理论知识,还能提升实际问题解决能力,为构建复杂应用打下坚实基础。每一个例子都是一个宝贵的实践经验,有助于程序员逐步成长为VB.NET的专家。
如果涉及到多线程操作,比如在后台执行文件操作以避免阻塞用户界面,可能会用到BackgroundWorker组件或者Task并行库。 在实际开发过程中,为了确保良好的用户体验,开发者可能还考虑了错误处理和异常捕获,使用try-...
在IT行业中,Silverlight是一种基于.NET Framework的浏览器插件,由微软开发,主要用于创建富互联网应用程序(RIA)...通过学习这个例子,开发者能够更好地理解和应用数据压缩技术,提升其Silverlight应用的用户体验。
总结来说,学习WinForm多线程不仅涉及线程的创建和管理,还包括线程同步、UI更新规则以及在特定场景下(如处理Excel文件)的注意事项。通过实践这些概念,开发者可以编写出更高效、更响应的桌面应用程序。