【发布时间】:2010-11-21 04:05:39
【问题描述】:
在 C# 中捕获一个线程上的异常,然后在另一个线程上重新抛出它是否合法且安全。
例如这合法吗
Exception localEx = null;
Thread mythread = new Thread() { () =>
{
try
{
DoSomeStuff();
}
catch(Exception ex)
{
localEx = ex;
}
});
myThread.Start();
...
myThread.Join();
if(localEx != null)
throw localEx; // rethrow on the main thread
我认为这是合法的,但我很难找到任何可以证明这一点的文档。我发现的最接近的是在此处简要提及在线程之间传输异常:http://msdn.microsoft.com/en-us/library/ms229005.aspx
【问题讨论】:
-
你能把一个对象从一个线程传递到另一个线程吗?
-
@Partial:当然可以。
标签: c# multithreading exception