È legale e sicuro in C# catturare un'eccezione su un thread e quindi rilanciarlo su un altro.Riesci a rilanciare un'eccezione .NET su un thread diverso?
E.g. è legale
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
Penso che sia legale, ma ho difficoltà a trovare qualsiasi documento che lo provi. Il più vicino che ho trovato è una breve menzione del trasferimento delle eccezioni tra i thread qui: http://msdn.microsoft.com/en-us/library/ms229005.aspx
È possibile passare un oggetto da un thread a un altro? – Partial
@Partial: certo che puoi. –