time service contains bug, it cannot stop after edge
This commit is contained in:
@@ -86,11 +86,7 @@ namespace StgSharp.Timing
|
||||
public void Dispose()
|
||||
{
|
||||
// mark provider as ended so external users can observe terminal state
|
||||
try
|
||||
{
|
||||
Volatile.Write(ref _endedFlag, 1);
|
||||
}
|
||||
catch { }
|
||||
Volatile.Write(ref _endedFlag, 1);
|
||||
s_unusedID.Push(TokenID);
|
||||
_event.Dispose();
|
||||
GC.SuppressFinalize(this);
|
||||
@@ -211,6 +207,7 @@ namespace StgSharp.Timing
|
||||
{
|
||||
// mark ended due to sequence timeout, then dispose
|
||||
Volatile.Write(ref _endedFlag, 1);
|
||||
Console.WriteLine("Time span ended.");
|
||||
Dispose();
|
||||
return false;
|
||||
}
|
||||
@@ -238,9 +235,6 @@ namespace StgSharp.Timing
|
||||
return true;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal void Refresh() => _refreshHandler?.Invoke(this, EventArgs.Empty); // Legacy compatibility.
|
||||
|
||||
~TimeSpanProvider() => Dispose();
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user