File tree 1 file changed +9
-7
lines changed
1 file changed +9
-7
lines changed Original file line number Diff line number Diff line change @@ -11,16 +11,16 @@ namespace Example1
11
11
internal class Notifier : IDisposable
12
12
{
13
13
private volatile bool _enabled ;
14
+ private ManualResetEvent _exited ;
14
15
private Queue < NotificationMessage > _queue ;
15
16
private object _sync ;
16
- private ManualResetEvent _waitHandle ;
17
17
18
18
public Notifier ( )
19
19
{
20
20
_enabled = true ;
21
+ _exited = new ManualResetEvent ( false ) ;
21
22
_queue = new Queue < NotificationMessage > ( ) ;
22
23
_sync = ( ( ICollection ) _queue ) . SyncRoot ;
23
- _waitHandle = new ManualResetEvent ( false ) ;
24
24
25
25
ThreadPool . QueueUserWorkItem (
26
26
state => {
@@ -40,8 +40,9 @@ public Notifier ()
40
40
}
41
41
}
42
42
43
- _waitHandle . Set ( ) ;
44
- } ) ;
43
+ _exited . Set ( ) ;
44
+ }
45
+ ) ;
45
46
}
46
47
47
48
public int Count {
@@ -60,15 +61,16 @@ private NotificationMessage dequeue ()
60
61
public void Close ( )
61
62
{
62
63
_enabled = false ;
63
- _waitHandle . WaitOne ( ) ;
64
- _waitHandle . Close ( ) ;
64
+ _exited . WaitOne ( ) ;
65
+ _exited . Close ( ) ;
65
66
}
66
67
67
68
public void Notify ( NotificationMessage message )
68
69
{
69
- lock ( _sync )
70
+ lock ( _sync ) {
70
71
if ( _enabled )
71
72
_queue . Enqueue ( message ) ;
73
+ }
72
74
}
73
75
74
76
void IDisposable . Dispose ( )
You can’t perform that action at this time.
0 commit comments