You've already forked linux-packaging-mono
51 lines
977 B
C#
51 lines
977 B
C#
using System;
|
|
using System.Threading;
|
|
using System.Runtime.InteropServices;
|
|
|
|
class Test {
|
|
delegate int SimpleDelegate (int a);
|
|
|
|
static int cb_state = 0;
|
|
|
|
static int F (int a) {
|
|
Console.WriteLine ("Test.F from delegate: " + a);
|
|
throw new NotImplementedException ();
|
|
}
|
|
|
|
static void async_callback (IAsyncResult ar)
|
|
{
|
|
Console.WriteLine ("Async Callback " + ar.AsyncState);
|
|
cb_state = 1;
|
|
throw new NotImplementedException ();
|
|
}
|
|
|
|
static int Main () {
|
|
SimpleDelegate d = new SimpleDelegate (F);
|
|
AsyncCallback ac = new AsyncCallback (async_callback);
|
|
string state1 = "STATE1";
|
|
int res = 0;
|
|
|
|
IAsyncResult ar1 = d.BeginInvoke (1, ac, state1);
|
|
|
|
ar1.AsyncWaitHandle.WaitOne ();
|
|
|
|
try {
|
|
res = d.EndInvoke (ar1);
|
|
} catch (NotImplementedException) {
|
|
res = 1;
|
|
Console.WriteLine ("received exception ... OK");
|
|
}
|
|
|
|
while (cb_state == 0)
|
|
Thread.Sleep (0);
|
|
|
|
if (cb_state != 1)
|
|
return 1;
|
|
|
|
if (res != 1)
|
|
return 2;
|
|
|
|
return 0;
|
|
}
|
|
}
|