| File: InactivityTimer.cs | Web Access |
| Project: src\vstest\src\Microsoft.TestPlatform.Extensions.BlameDataCollector\Microsoft.TestPlatform.Extensions.BlameDataCollector.csproj (Microsoft.TestPlatform.Extensions.BlameDataCollector) |
// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. using System; using System.Threading; namespace Microsoft.TestPlatform.Extensions.BlameDataCollector; public class InactivityTimer : IInactivityTimer { private readonly Timer _timer; /// <summary> /// Initializes a new instance of the <see cref="InactivityTimer"/> class. /// Creates a new timer with infinite timeout /// </summary> /// <param name="timerCallback">Function to callback once the timer times out.</param> public InactivityTimer(Action timerCallback) { _timer = new Timer((object? state) => timerCallback()); } /// <inheritdoc /> public void ResetTimer(TimeSpan inactivityTimespan) { _timer.Change(inactivityTimespan, TimeSpan.FromMilliseconds(-1)); } /// <inheritdoc /> public void Dispose() { _timer.Dispose(); GC.SuppressFinalize(this); } }