private async Task ThreadMethod(CancellationToken cancellation)
        {
            while (!cancellation.IsCancellationRequested)
            {
                try
                {
                    if (_isTelemetryDisabled)
                    {
                        try
                        {
                            await Execute(cancellation).ConfigureAwait(false);
                        }
                        catch (Exception exception)
                        {
                            LogFatalError(exception);
                        }
                    }
                    else
                    {
                        var telemtryOperation = ApplicationInsightsTelemetry.StartRequestOperation($"{nameof(TimerPeriod)} on {_typeName} for {_componentName}");
                        try
                        {
                            await Execute(cancellation).ConfigureAwait(false);
                        }
                        catch (Exception exception)
                        {
                            LogFatalError(exception);
                            ApplicationInsightsTelemetry.MarkFailedOperation(telemtryOperation);
                            ApplicationInsightsTelemetry.TrackException(exception);
                        }
                        finally
                        {
                            ApplicationInsightsTelemetry.StopOperation(telemtryOperation);
                        }
                    }

                    try
                    {
                        await Task.Delay(_periodMs, cancellation).ConfigureAwait(false);
                    }
                    catch (TaskCanceledException)
                    {
                    }
                }
                // Saves the loop if nothing didn't help
                // ReSharper disable once EmptyGeneralCatchClause
                catch
                {
                }
            }
        }