public virtual async Task Start(string ip, string mib, SnmpMethod method, int pingEveryMs, Action <SnmpData> onResponse, CancellationToken token = default(CancellationToken)) { while (!token.IsCancellationRequested) { onResponse(_snmpService.Request(ip, mib, method)); try { await Task.Delay(TimeSpan.FromMilliseconds(pingEveryMs), token); } catch (TaskCanceledException) { break; } } }