正在运行的事件怎么终止

问题描述

窗体1点确定按钮(引发单击事件)--->开始一个庞大的数据处理,大概要处理20分钟--->同时弹出窗体2,有一个自定义控件,控件上有进度条和取消按钮(进度条功能正常实现了)现在,我中途点窗体2控件中的取消,怎么能让窗体1的数据处理立刻终止.目前遇到的问题是,我点取消,只是关闭了窗体2,而窗体1单击事件仍然在跑,也就是说事件还在执行.怎么能让窗体1的数据处理立刻终止呀??????????????

解决方案

解决方案二:
帮顶,我也想知道
解决方案三:
用一个新线程调用数据处理的方法,取消时阻塞这个线程
解决方案四:
第一搞个线程去做,然后终止线程第二,在循环中加上加上个变量判断,比如_exit就是变量,你控制它就行了while(true){//你的工作Application.DoEvents();if(_exit)break;}
解决方案五:
开个线程,处理数据。取消时,暴力点的就是kill线程。温柔点的,就是设置个结束标志,处理数据时判断结束标志,如果为true,结束处理数据,线程自己结束。
解决方案六:
关键是第一个窗体中的button1-Click()事件中的查询语句正在进行,而把这条查询语句发动线程中,意味着他不能再调用Form1中传来的参数了,必须再用委托把所有用到的参数、方法全委托,是不是太麻烦了?是不是应该在进度条控件的取消事件中做文章??????
解决方案七:
没人回答,自己顶一下

时间: 2024-08-31 04:18:26

正在运行的事件怎么终止的相关文章

《OpenACC并行程序设计:性能优化实践指南》一 3.10 使用Score-P和Vampir记录OpenACC运行时事件

3.10 使用Score-P和Vampir记录OpenACC运行时事件 编译器和运行时在实现OpenACC指令时有一定的自由度.因此,检查编译器和运行时对OpenACC指令转换和最终程序执行非常重要.例如,kernels指令触发设备初始化.设备内存分配和没有明确指定相应操作的数据传输.OpenACC 2.5引入的分析接口定义了一组事件,这些事件揭示了OpenACC指令的实现和执行细节.这使得Score-P之类的工具能够测量OpenACC区域的持续时间.在主机上的等待时间和任务提交开销,以及跟踪加

java怎么结束执行ba,t终止虚拟机的运行但是不会终止服务器

问题描述 做了一个系统,后台算法用java实现,用runtime去执行外部程序,当外部程序出现死循环时怎么结束这个死循环,关闭执行外部程序,但是同时不杀死在运行的服务器,系统照常运行..求指导 解决方案 解决方案二:用runtime去执行taskkill/im要结束的进程名称就可以了.解决方案三: importjava.io.BufferedReader;importjava.io.File;importjava.io.FileWriter;importjava.io.IOException;i

多线程:C#线程同步lock,Monitor,Mutex,同步事件和等待句柄(中)

转自 http://www.cnblogs.com/freshman0216/archive/2008/07/30/1252345.html   本篇继续介绍WaitHandler类及其子类Mutex,ManualResetEvent,AutoResetEvent的用法..NET中线程同步的方式多的让人看了眼花缭乱,究竟该怎么去理解呢?其实,我们抛开.NET环境看线程同步,无非是执行两种操作:一是互斥/加锁,目的是保证临界区代码操作的"原子性":另一种是信号灯操作,目的是保证多个线程按

Zend Framework 2.0事件管理器(The EventManager)入门教程_php实例

概述 EventManger是一个为以下使用情况设计的组件: 复制代码 代码如下: 实现简单的主题/观察者模式 实现面向切面的设计 实现事件驱动的架构 基本的架构允许你添加和解除指定事件的侦听器,无论是在一个实例基础还是一个共享的集合:触发事件:终止侦听器的执行. 快速入门 通常,你将会在一个类中创建一个EventManager. 复制代码 代码如下: use Zend\EventManager\EventManagerInterface; use Zend\EventManager\Event

JavaScript使用自定义事件实现简单的模块化开发

WEB前端最常见驱动方式就是事件了, 所有交互等等都是通过事件,前端的常见事件有:     UI事件: 焦点事件: 鼠标事件: 滚轮事件: 文本事件: 键盘事件: 变动事件: 现在网页上有一个输入框, 如果我们要对用户输入的字符串进行过滤, 或者是截获用户的输入进行处理的话, 我们要肿么办  同学们纷纷举手说:"老师,我知道,是使用添加事件", 老师也很欣慰地点了点头, 这群家伙真的是越来越聪明了, 老师又问了"如果要取消用户的输入怎么办了", 坐在最前排眼睛最小的

微软KB939373补丁导致IIS无法运行的解决方法

本人在Windows XP SP2+IIS 5.1上测试我的ASP程序.本人有及时打微软补丁的好习惯.但打上如题所述的补丁后,导致IIS无法运行,事件查看器有如下错误:World Wide Web Publishing 服务因下列错误而停止: 找不到指定的程序. 上网查了一下,发现只要将哪个补丁卸载即可.但本人在添加删除中没找到这个补丁,在网上找了半天,终于找到这个专门卸载KB939373的软件,以飨各位,就当拜年了. 下载链接: http://www.fs2you.com/files/1529

事件和接收者类型(java)

所有AWT组件都被改变成包含addXXXListener()和removeXXXListener()方法,因此特定的接收器类型可从每个组件中增加和删除. 我们会注意到"XXX"在每个场合中同样表示自变量的方法,例如,addFooListener(FooListener fl). 下面这张表格总结了通过提供addXXXListener()和removeXXXListener()方法,从而支持那些特定事件的相关事件.接收器.方法以及组件. 事件,接收器接口及添加和删除方法 支持这个事件的组

回调函数与Delphi的事件模型

回调函数: 回调函数是这样一种机制:调用者在初始化一个对象(这里的对象是泛指,包括OOP中的对象.全局函数等)时,将一些参数传递给对象,同时将一个调用者可以访问的函数地址传递给该对象.这个函数就是调用者和被调用者之间的一种通知约定,当约定的事件发生时,被调用者(一般会包含一个工作线程)就会按照回调函数地址调用该函数. 这种方式,调用者在一个线程,被调用者在另一个线程. 在Windows API中有一些函数使用回调函数,例如CreateThread.SetWindowLong等.对应的回调函数定义

ASP入门教程-处理会话事件

Session 对象有两个事件:即 OnStart 事件和 OnEnd 事件.通过对这两个事件过程编写脚本可以在会话开始和结束时执行指定的操作.编写这些事件过程的脚本代码时,必须使用 SCRIPT 标记并将 RUNAT 属性设置为 Server ,而不能使用一般的 ASP 脚本定界符<% 和 %>:这些事件过程的脚本代码必须包含在一个名为 global.asa 的文件中,而该文件必须存放在应用程序的根目录中. 1.Session_OnStart 事件 Session_OnStart事件是在服务