我有两个问题:
如果我有这样的方法:
public void DoMyWork()
{
throw new MyException(anyString);
}
...我这样称呼
async
:public void DoMyWorkAsync()
{
try
{
new Thread(DoMyWork).Start();
}
catch (MyException)
{
// Do anything
}
}
首先,这样的try块会捕获异常吗?如果是这样,线程是否会终止,因为通常情况下线程会停止运行,但是如果我捕获了它,线程也会终止,还是我必须实现一个
CancellationToken
?
最佳答案
First of all, will the exception be catched with a try-block like this?
不,不会被捕获。
您需要使用
DoMyWork
将代码包装在try/catch
方法内,以捕获该异常。注意:这将导致“未处理的异常”,任何未处理的异常都将破坏进程(应用程序崩溃)。
关于c# - 尽管是try/catch,但是异常会结束线程吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23500417/