Some people says that Thread.Abort is evil.But the following is what the msdn says.
http://msdn.microsoft.com/en-us/library/system.threading.threadabortexception.aspx
using System;
using System.Threading;
using System.Security.Permissions;
public class ThreadWork {
public static void DoWork() {
try {
for(int i=0; i<100; i++) {
Console.WriteLine("Thread - working.");
Thread.Sleep(100);
}
}
catch(ThreadAbortException e) {
Console.WriteLine("Thread - caught ThreadAbortException - resetting.");
Console.WriteLine("Exception message: {0}", e.Message);
Thread.ResetAbort();
}
Console.WriteLine("Thread - still alive and working.");
Thread.Sleep(1000);
Console.WriteLine("Thread - finished working.");
}
}
class ThreadAbortTest {
public static void Main() {
ThreadStart myThreadDelegate = new ThreadStart(ThreadWork.DoWork);
Thread myThread = new Thread(myThreadDelegate);
myThread.Start();
Thread.Sleep(100);
Console.WriteLine("Main - aborting my thread.");
myThread.Abort();
myThread.Join();
Console.WriteLine("Main ending.");
}
}
分享到:
相关推荐
本人利用Thread.Abort()与Thread.Interrupt()可以引起目标线程异常的特点,开发了一种不使用已过时的方法来变相从外部控制线程的挂起与恢复的技术,原理简单,方便理解。 相关技术参考:...
angular.http.abort 使用 angular 实现 http 请求中止和超时的示例。 如何开始: 安装 nodejs。 ( ) 安装依赖项 // npm install 在终端中输入 npm start 。 在浏览器中打开 。
使用U盘装系统过程中,中途突然弹出错误警告:“Decompressionerror,Abort“,出现这种情况一般是由U盘与电脑USB接口松动或是U盘中的系统映像文件损坏导致,可以重新插拔U盘,换个系统文件试试。 本文来源于:u大师...
节点异常终止控制器基于EventEmitter的Node.JS的AbortController Polyfill用法import fetch from 'node-fetch'import AbortController from 'node-abort-controller'const controller = new AbortController ( )...
由于使用的是jquery,挡在手册里没有找到关于.abort()方法,在网上搜索了一下,在http://ooxx.me/jquery-ajax-abort.orz看到有关于jquery 里.abort()使用方法,直接用例子: 代码如下: current_request = $.get(‘/...
Abort................................................................................................................................. 23 Thread State ...................................................
if (!bRunning) { value = Convert.ToInt32(StartValBox.Text); outCount = 0; inCount = 0; bRunning = true;... StartBtn.Text = "Stop";... tXfers.Abort(); tXfers.Join(); tXfers = null; } }
.net C#线程超时的解决方案,使用的时候在被调线程入口调用一下这个方法就可以。更多详细代码见附件 Report.RegisterThread... thread.Abort(); } catch { } t.Dispose(); } } #endregion } #endregion
.net C#线程超时的解决方案,使用的时候在被调线程入口调用一下这个方法就可以。更多详细代码见附件 Report.RegisterThread... thread.Abort(); } catch { } t.Dispose(); } } #endregion } #endregion
停止:Thread.Abort();暂停:Thread.Suspend();继续:Thread.Resume(); private void btn_Start_Click(object sender, EventArgs e) { mThread.Start(); // 开始 } private void btn_Stop_Click(object sender, ...
C++ thread退出线程 多线程 子线程控制退出主线程 window VS2017 Debug Error! Abort() has been called. C++ thread退出线程 多线程 子线程控制退出主线程 window VS2017 Debug Error! Abort() has been called.
网上有好多使用多线程弹出式等待窗口作为程序中较长时间后台运行提示的,但是做的都不完善,尤其是用 waitThread.Abort() 杀死线程时容易产生异常,进而出错。本程序是比较完善的改进,利用多线程弹出等待窗口,并...
C#制作简单正则表达式测试器部分代码: namespace RegexTest { public partial class Rt : Form { public Rt() { InitializeComponent(); CheckForIllegalCrossThreadCalls = false; } private void btnPi_...
C#例子代码 A0301_ThreadAbortC#例子代码 A0301_ThreadAbortC#例子代码 A0301_ThreadAbortC#例子代码 A0301_ThreadAbortC#例子代码 A0301_ThreadAbortC#例子代码 A0301_ThreadAbortC#例子代码 A0301_ThreadAbortC#...
但在前端开发过程中,不怎么重视xhr的abort(中止掉xhr请求,及表示取消本次请求)。往往会带来一些不可意料的结果。 比如:切换tab,发起xhr请求,渲染同一个列表。就这么简单的拉取数据渲染列表的功能,并且可以...
一键安装即可,无需激活码!!!! Navicat Premium 是一套数据库开发工具,让你从单一应用程序中同时连接 MySQL、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL 和 SQLite 数据库。它与 Amazon RDS、Amazon ...
public ObjectId GetBlockTableRecordObjectId(string btrName) { ObjectId btrObjId = new ObjectId(); Database db = ... trans.Abort(); } finally { trans.Dispose(); } return btrObjId; }
_thread.Abort(); _thread = null; } // 释放命名管道 if (_client != null) { _client.Close(); _client = null; } } // 发送数据 public static void WriteLine(string strInformation) { // 检查...
仿MNS提示框C#源代码程序,带声音启动。string Sound = Application.StartupPath + "\\msg.wav"; clsPalyWave.Play(Sound);Tpaly.Abort();VisualStudio2008创建
Thread.CurrentThread.Abort(); break; } case "02": { byte[] onlineBuff = SerializeOnlineList(); //先发送响应信号,用于客户机的判断,"11"表示服务发给客户机的更新在线列表的命令 clientSkt.Send(new...