linux-packaging-mono/mcs/tests/test-iter-23.cs

45 lines
709 B
C#
Raw Normal View History

using System;
using System.Collections;
using System.Threading;
class X
{
static ManualResetEvent dispose = new ManualResetEvent (false);
static ManualResetEvent wait = new ManualResetEvent (false);
static IEnumerable GetIt2 ()
{
yield return Delay ();
yield return 2;
}
static int Delay ()
{
dispose.Set ();
wait.WaitOne ();
return 1;
}
public static int Main ()
{
var e = GetIt2 ().GetEnumerator ();
ThreadPool.QueueUserWorkItem (l => {
dispose.WaitOne ();
((IDisposable) e).Dispose ();
wait.Set ();
});
if (!e.MoveNext ())
return 1;
if (e.MoveNext ())
return 2;
Console.WriteLine (e.Current);
if ((int) e.Current != 1)
return 3;
return 0;
}
}