e.Cancel = True在这个过程中具体的含义是什么?

问题描述

PrivateSubbackgroundWorker1_DoWork(ByValsenderAsSystem.Object,ByValeAsDoWorkEventArgs)HandlesBackgroundWorker1.DoWorkDimiAsIntegerFori=1To10If(worker.CancellationPending=True)Thene.Cancel=TrueExitForElseSystem.Threading.Thread.Sleep(500)worker.ReportProgress(i*10)EndIfNextEndSub我试了一下,如果e.Cancel=false或者删除,好像都不影响代码的执行效果,这是为什么???

解决方案

解决方案二:
e.Cancel=false不影响执行效果,应为默认值就是falsee.Cancel=true就会影响了
解决方案三:
e.Cancel=true终止操作,具体看帮助DoWork事件处理程序中的代码应定期检查CancellationPending属性值,并在该值为true时中止操作。出现这种情况时,可以将System.ComponentModel..::.DoWorkEventArgs的Cancel标志设置为true,同时将RunWorkerCompleted事件处理程序中的System.ComponentModel..::.RunWorkerCompletedEventArgs的Cancelled标志设置为true。
解决方案四:
这个是用来和RunWorkerCompleted事件通信的,不会改变代码的行为。如果你把它设置为True,就是告诉BackgroundWorker,我是因为用户发出了退出请求而退出的,也就是被取消了。这样,你在RunWorkerCompleted事件中才能区分工作是完成还是被取消了。(通过检查事件参数的Cancelled属性)。(BackgroundWorker不能自动区分这两种情况。不能说没有调用CancelAsync就是完成,调用了CancelAsync就是取消。因为即使调用了CancelAsync,代码也可以忽略掉他,自顾自地执行完毕。)

时间: 2024-10-28 18:31:30

e.Cancel = True在这个过程中具体的含义是什么?的相关文章

11g包dbms_parallel_execute在海量数据处理过程中的应用

11g包dbms_parallel_execute在海量数据处理过程中的应用 1.1  BLOG文档结构图       1.2  前言部分   1.2.1  导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 11g包dbms_parallel_execute在海量数据处理过程中的应用   注意:本篇BLOG中代码部分需要特别关注的地方我都用黄色背景和红色字体来表示,比如下边的例子中,thread 1的最大归档日志号为33,thr

在ASP处理程序的过程中同时显示进度

用过软件的朋友都知道,进度条是一个优秀软件的重要组成部分. 它的存在能够使用户及时掌握程序的运行进度,确认应用程序正常工作.可是ASP中似乎没有上述标准控件,控制起来也比较麻烦. 用过软件的朋友都知道,进度条是一个优秀软件的重要组成部分. 它的存在能够使用户及时掌握程序的运行进度,确认应用程序正常工作.可是ASP中似乎没有上述标准控件,控制起来也比较麻烦. 那么如何实现进度条呢? 以下是本人的一些观点(仅供参考) 我们通常在用ASP处理程序(指的是写文件或操作数据库)的时候,会专门用一个页面(*

Java调用命令实现视频上传过程中自动转换为flv格式并截图生成缩略图

//视频上传过程中自动转换为flv格式并截图生成缩略图(Java调用命令实现) import java.util.ArrayList; import java.util.List; public class VideoProcess { System.out.println(oldfilepath+"->"+newfilename+"- >"+newimg); List<String> commendF = new ArrayList<

在Java的应用过程中获取系统属性

Java语言以其面向对象.跨平台.可移植性好.安全性高等优点,受到众多编程人员的青睐,越来越多的人将其作为应用软件开发语言的首选. 在Java应用程序运行时,特别是需要在跨平台工作环境下运行时,需要确定操作系统类型.用户JDK版本和用户工作目录等随工作平台变化的信息,来保证程序正确运行.一般情况下,可以利用JDK提供的系统属性类(Properties)中的方法,快速地获取工作环境信息. 另外,程序开发人员还可以定义与应用程序相关的系统属性文件,在用户程序执行过程中动态地加载程序员定义的属性文件来

开发项目过程中辅助方法好处多多

在开发项目过程中,总是会出现大量的辅助方法,例如字符串处理,代码检 验,格式输出等等.如果您发现自己在多次编写类似的代码,可能就要想着如何 把这些代码进行提取,变成辅助方法(亦或是类库甚至框架,关于这方面粒度问 题在此不作讨论).辅助方法的作用除了遵循DRY原则之外,也能让代码更容易 编写,更为清晰,可读性也能更好--而且只要您"去做",就会发现要得到这 些好处并不困难. 在这里举一个最简单的例子,对Index方法的单元测试: [TestMethod] public void Inde

c语言-【C语言】vc6.0运行程序过程中提示***.EXE已停止工作

问题描述 [C语言]vc6.0运行程序过程中提示***.EXE已停止工作 在运行"添加"这一块时,输入完信息之后就提示***.EXE已停止工作,这是什么错? 代码如下 #include #include #include #include #include #define LENTEL sizeof(tel) #define ID struct tel struct tel { char name[15]; char tele[15]; char style[15]; char mai

Ajax在请求过程中显示进度的简单实现_AJAX相关

Ajax在Web应用中使用得越来越频繁.在进行Ajax调用过程中一般都具有这样的做法:显示一个GIF图片动画表明后台正在工作,同时阻止用户操作本页面(比如Ajax请求通过某个按钮触发,用户不能频繁点击该按钮产生多个并发Ajax请求):调用完成后,图片消失,当前页面运行重新编辑.以下图为例,页面中通过一个Load链接以Ajax请求的方式加载数据(左).当用户点击该链接之后,Ajax请求开始,GIF图片显示"Loading"状态,同时当前页面被"罩住"防止用户继续点击L

java-你的android app在运行过程中占用内存多少?

问题描述 你的android app在运行过程中占用内存多少? Hello,android开发不可避免的碰到内存管理,有时会碰到内存溢出的问题.因此谷歌对android系统的每个app做了内存限制,早期版本的android系统(比如1.5,1.6,2.1等),每个app的内存不能够超过32M.这个限制在android系统4.0开始就取消了,开发者在工程的AndroidManifest.xml中可以使用android:largeHeap="true"增加app对内存的使用限制. 我是做壁

Ajax请求过程中显示“进度”的简单实现

Ajax在Web应用中使用得越来越频繁.在进行Ajax调用过程中一般都具有这样的做法:显示一个GIF图片动画表明后台正在工作,同时阻止用户操作本页面(比如Ajax请求通过某个按钮触发,用户不能频繁点击该按钮产生多个并发Ajax请求):调用完成后,图片消失,当前页面运行重新编辑.以下图为例,页面中通过一个Load链接以Ajax请求的方式加载数据(左).当用户点击该链接之后,Ajax请求开始,GIF图片显示"Loading"状态,同时当前页面被"罩住"防止用户继续点击L