小编Joh*_*usk的帖子

你能在另一个线程上重新抛出.NET异常吗?

在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
Run Code Online (Sandbox Code Playgroud)

我认为这是合法的,但我很难找到证明它的任何doco.我发现最接近的是在线程之间传递异常的简短提及:http://msdn.microsoft.com/en-us/library/ms229005.aspx

c# multithreading exception

9
推荐指数
1
解决办法
2492
查看次数

标签 统计

c# ×1

exception ×1

multithreading ×1