C# Abort() 多线程运行逻辑
2024-10-08 03:42:04
/
Thread t ;
Thread t2; t.Abort()执行后,会阻止主线程继续运行,但是不会影响t2线程的执行。
static void Main(string[] args)
{
Console.WriteLine("Starting program...");
Thread t = new Thread(PrintNumbersWithStatus);
Thread t2 = new Thread(DoNothing);
Console.WriteLine(t.ThreadState.ToString());
t2.Start();
t.Start();
for (int i = ; i < ; i++)
{
Console.WriteLine("Thread t : " + t.ThreadState.ToString());
}
Thread.Sleep(TimeSpan.FromSeconds());
//-----------------------------------
t.Abort();//阻碍主线程继续运行,等待t线程运行完成。
//在调用此方法的线程上引发 System.Threading.ThreadAbortException,
//以开始终止此线程的过程。调用此方法通常会终止线程。
Console.WriteLine("A thread has been aborted");
Console.WriteLine(t.ThreadState.ToString());//AbortRequested 线程的Thread.Abort()方法已被调用,但是线程还未停止;
Console.WriteLine(t2.ThreadState.ToString());//Stopped 线程已经被停止;
Console.ReadKey();
}
static void DoNothing()
{
for (int i = ; i < ; i++)
{
Thread.Sleep(TimeSpan.FromSeconds());
Console.WriteLine("xxxxxxxxxxx"+i);
}
}
static void PrintNumbersWithStatus()
{
for (int i = ; i < ; i++)
{
Console.WriteLine("t : " + i);
Thread.Sleep(TimeSpan.FromSeconds());
}
}
https://www.cnblogs.com/wyt007/p/9486752.html 、、、
最新文章
- Bootstrap<;基础三>; 排版
- 在CDH5.5.0上安装Kudu6.0
- HLOI2016滚粗记
- 如何在ZBrush中将球体演变为头发
- java处理日期时间
- 类集对enum的支持。
- 邮件协议POP3/IMAP/SMTP服务的区别
- 基于 libmemcahce 的memcache 操作
- es5 api
- EmEditor编辑器正则表达式的优点
- Vue框架
- Kinect 深度图像格式
- 火狐开发----从头用到尾的cfx
- python工具使用笔记
- Elasticsearch常用配置及性能参数[转]
- 函数,lambda函数,递归函数,内置函数(map,filter),装饰器
- hdu 5181 numbers
- Codeforces Round #295 (Div. 2)A - Pangram 水题
- 12C RAC 常用检查命令,持续总结中
- DeepLearnToolbox-master代码学习笔记