c#中进程挂起是不是依然能够收到异常 c# 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你先写出一个“在 sleep 中抛出异常”的语句试试看?! 什么情况sleep会抛异常?如果真抛出异常,就能捕获到异常 Sleep挂起的是哪个线程?当前线程吗? 1.首先,你举得例子是线程,不是进程2.类似int a=1;这种语句,可能会抛异常吗?同理,sleep怎么可能会抛异常 static void testAbort() { try { Thread.Sleep(10000); } catch (System.Exception ex) { Console.WriteLine("tAbsort receive abort message, thread name:{0}", Thread.CurrentThread.Name); Console.WriteLine("enter catch tAbsort state:{0}", Thread.CurrentThread.ThreadState); } finally { Console.WriteLine("enter finally tAbsort state:{0}", Thread.CurrentThread.ThreadState); } } static void Main(string[] args) { try { //TestThreadJoin(); //Thread.CurrentThread.Abort(); Thread tAbort = new Thread(new ThreadStart(testAbort)); tAbort.Name = "ttAbort"; //Thread.Sleep(3000); tAbort.Start(); Thread.Sleep(1); tAbort.Abort(); //Thread.Sleep(3000); tAbort.Join(); Console.WriteLine("After finally, {0} thread state {1}", tAbort.Name, tAbort.ThreadState); Console.ReadKey(); } catch (Exception ex) { Console.WriteLine("enter Exception!" + ex.ToString()); }}可能我没有说清楚,我把源码贴出来 你觉得呢你在方法a里执行sleep,想要阻塞住方法b,sleep里如果不传入方法b所在的线程句柄,编译器哪知道你到底想阻塞谁事实上,sleep也根本没给你提供这个参数 C# 数字转条形码的问题 C# 如何获取占用文件的.exe名称 pda 文件操作 求救!dataset.WriteXml("D:\\Probe.Xml");出现错误,该怎么办? 字符串截取问题??? 请问一个dateime处理的问题? 创建一个WPF浏览器程序,运行后,自动弹出下载框,怎么回事? 如何判断一个表的主键是否存在?如何取主键字段名称及字段类型,写SQL语句 急急!!在线 请教C#2003关机程序。。。谢谢啊 如何在网頁中用c#實現一個菜單選擇項呀? 关于明华读卡器,C#开发,修改密码问题 菜鸟研究了2天的小问题,只能来发帖了。代码很短,数据插入不成功
你先写出一个“在 sleep 中抛出异常”的语句试试看?!
如果真抛出异常,就能捕获到异常
2.类似int a=1;这种语句,可能会抛异常吗?
同理,sleep怎么可能会抛异常
static void testAbort()
{
try
{
Thread.Sleep(10000);
}
catch (System.Exception ex)
{
Console.WriteLine("tAbsort receive abort message, thread name:{0}", Thread.CurrentThread.Name);
Console.WriteLine("enter catch tAbsort state:{0}", Thread.CurrentThread.ThreadState);
}
finally
{
Console.WriteLine("enter finally tAbsort state:{0}", Thread.CurrentThread.ThreadState);
}
} static void Main(string[] args)
{
try
{
//TestThreadJoin();
//Thread.CurrentThread.Abort();
Thread tAbort = new Thread(new ThreadStart(testAbort));
tAbort.Name = "ttAbort";
//Thread.Sleep(3000);
tAbort.Start();
Thread.Sleep(1);
tAbort.Abort();
//Thread.Sleep(3000);
tAbort.Join();
Console.WriteLine("After finally, {0} thread state {1}", tAbort.Name, tAbort.ThreadState);
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine("enter Exception!" + ex.ToString());
}
}可能我没有说清楚,我把源码贴出来
你在方法a里执行sleep,想要阻塞住方法b,sleep里如果不传入方法b所在的线程句柄,编译器哪知道你到底想阻塞谁
事实上,sleep也根本没给你提供这个参数