Est-il légal et sûr en C# d'attraper une exception sur un thread, puis de le rejeter sur un autre.Pouvez-vous relancer une exception .NET sur un thread différent?
E.g. est-ce légal
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
Je pense que c'est légal, mais j'ai du mal à trouver un doco qui le prouve. Le plus proche que j'ai trouvé était une brève mention du transfert des exceptions entre les discussions ici: http://msdn.microsoft.com/en-us/library/ms229005.aspx
Pouvez-vous passer un objet d'un thread à un autre? – Partial
@Partial: bien sûr, vous pouvez. –