blob: cf1b181359111ffbc14a818e673130866fa39d1d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
using System;
using System.Collections;
using System.Threading;
class X
{
static ManualResetEvent dispose = new ManualResetEvent (false);
static IEnumerable GetIt2 ()
{
yield return Delay ();
yield return 2;
}
static int Delay ()
{
dispose.Set ();
Thread.Sleep (10);
return 1;
}
public static int Main ()
{
var e = GetIt2 ().GetEnumerator ();
ThreadPool.QueueUserWorkItem (l => {
dispose.WaitOne ();
((IDisposable) e).Dispose ();
});
if (!e.MoveNext ())
return 1;
if (e.MoveNext ())
return 2;
Console.WriteLine (e.Current);
if ((int) e.Current != 1)
return 3;
return 0;
}
}
|