Revision d15e99b4 trunk/Pithos.Core/StatusKeeper.cs
b/trunk/Pithos.Core/StatusKeeper.cs | ||
---|---|---|
24 | 24 |
[System.ComponentModel.Composition.Import] |
25 | 25 |
public IPithosSettings Settings { get; set; } |
26 | 26 |
|
27 |
private BlockingCollection<Action> _statusUpdateQueue = new BlockingCollection<Action>();
|
|
27 |
private JobQueue _statusUpdateQueue;
|
|
28 | 28 |
|
29 | 29 |
public StatusKeeper() |
30 | 30 |
{ |
... | ... | |
63 | 63 |
|
64 | 64 |
public void StartProcessing(CancellationToken token) |
65 | 65 |
{ |
66 |
Task.Factory.StartNew(ProcessUpdates,token); |
|
66 |
_statusUpdateQueue.Start(token); |
|
67 |
|
|
67 | 68 |
} |
68 | 69 |
|
69 |
public void ProcessUpdates() |
|
70 |
{ |
|
71 |
foreach (var action in _statusUpdateQueue.GetConsumingEnumerable()) |
|
72 |
{ |
|
73 |
action(); |
|
74 |
} |
|
75 |
} |
|
70 |
|
|
76 | 71 |
|
77 | 72 |
public void Stop() |
78 | 73 |
{ |
79 |
_statusUpdateQueue.CompleteAdding();
|
|
74 |
_statusUpdateQueue.Stop();
|
|
80 | 75 |
} |
81 | 76 |
|
82 | 77 |
|
Also available in: Unified diff