linux-packaging-mono/mono/tests/threadpool-exceptions2.cs
Jo Shields a575963da9 Imported Upstream version 3.6.0
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
2014-08-13 10:39:27 +01:00

41 lines
867 B
C#

using System;
using System.Threading;
class Test {
static object monitor;
static int return_value = 2;
static int Main ()
{
monitor = new object ();
AppDomain.CurrentDomain.UnhandledException += OnUnhandledException;
WaitCallback wcb = new WaitCallback ((a) => {
throw new Exception ("From the threadpoool");
});
wcb.BeginInvoke (wcb, OnCBFinished, null);
lock (monitor) {
Monitor.Wait (monitor);
}
Thread.Sleep (1000);
return 1;
}
static void OnUnhandledException (object sender, UnhandledExceptionEventArgs e)
{
string str = e.ExceptionObject.ToString ();
if (str.IndexOf ("From the threadpool") != -1)
return_value = 3;
lock (monitor) {
Monitor.Pulse (monitor);
}
Environment.Exit (return_value);
}
static void OnCBFinished (object arg)
{
return_value = 0;
throw new Exception ("From OnCBFinished");
}
}