在C#中合法安全地捕獲一個線程上的異常,然後將其重新扔到另一個線程上。你可以在另一個線程上重新拋出一個.NET異常嗎?
E.g.這是合法的
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
我認爲這是合法的,但我很難找到證明它的任何doco。我發現的最接近的是線程間異常轉移的簡短提及:http://msdn.microsoft.com/en-us/library/ms229005.aspx
你可以將線程中的對象傳遞給另一個線程嗎? – Partial 2009-08-20 01:36:46
@部分:當然可以。 – 2014-10-07 07:08:25