diff --git a/src/SignalR/clients/csharp/Client/test/UnitTests/TimerAwaitableTests.cs b/src/SignalR/clients/csharp/Client/test/UnitTests/TimerAwaitableTests.cs index b8d7f1769946..2d61118186a3 100644 --- a/src/SignalR/clients/csharp/Client/test/UnitTests/TimerAwaitableTests.cs +++ b/src/SignalR/clients/csharp/Client/test/UnitTests/TimerAwaitableTests.cs @@ -14,20 +14,16 @@ public class TimerAwaitableTests { [Fact] [QuarantinedTest] - public void FinalizerRunsIfTimerAwaitableReferencesObject() + public async Task FinalizerRunsIfTimerAwaitableReferencesObject() { var tcs = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); UseTimerAwaitableAndUnref(tcs); - // Make sure it *really* cleans up - for (int i = 0; i < 5 && !tcs.Task.IsCompleted; i++) - { - GC.Collect(); - GC.WaitForPendingFinalizers(); - } + GC.Collect(); + GC.WaitForPendingFinalizers(); // Make sure the finalizer runs - Assert.True(tcs.Task.IsCompleted); + await tcs.Task.OrTimeout(); } [MethodImpl(MethodImplOptions.NoInlining)] @@ -43,12 +39,11 @@ public class ObjectWithTimerAwaitable { private readonly TimerAwaitable _timer; private readonly TaskCompletionSource _tcs; - private int _count; public ObjectWithTimerAwaitable(TaskCompletionSource tcs) { _tcs = tcs; - _timer = new TimerAwaitable(TimeSpan.Zero, TimeSpan.FromSeconds(1)); + _timer = new TimerAwaitable(TimeSpan.FromSeconds(30), TimeSpan.FromSeconds(1)); _timer.Start(); } @@ -58,7 +53,6 @@ public async Task Start() { while (await _timer) { - _count++; } } }