diff options
Diffstat (limited to 'mono/tests/exiting/delegate-delegate-exit.cs')
-rwxr-xr-x | mono/tests/exiting/delegate-delegate-exit.cs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/mono/tests/exiting/delegate-delegate-exit.cs b/mono/tests/exiting/delegate-delegate-exit.cs new file mode 100755 index 00000000000..ad8864ba050 --- /dev/null +++ b/mono/tests/exiting/delegate-delegate-exit.cs @@ -0,0 +1,30 @@ +using System; +using System.Threading; +using System.Runtime.InteropServices; + +class foo { + delegate void foo_delegate (); + + static void function () { + Console.WriteLine ("Delegate method"); + Environment.Exit(42); + } + + static void async_callback (IAsyncResult ar) + { + Console.WriteLine ("Async callback " + ar.AsyncState); + } + + public static void Main () { + foo_delegate d = new foo_delegate (function); + AsyncCallback ac = new AsyncCallback (async_callback); + IAsyncResult ar1 = d.BeginInvoke (ac, "foo"); + + ar1.AsyncWaitHandle.WaitOne(); + Thread.Sleep(1000); + d.EndInvoke(ar1); + + Thread.Sleep(1000); + Console.WriteLine("Main returns"); + } +} |