Почему DateTime.Subtract иногда возвращает действительно странные значения?
private ConcurrentDictionary<string, Request> _waitingList = new ConcurrentDictionary<string, Request>();
// send requests in thread #1 and set their SentAt time
_waitingList.TryAdd(macAddress, request);
request.SentAt = DateTime.UtcNow;
// then in a timer tick event in different thread every 5 seconds
private void OnTimerTick(object sender, ElapsedEventArgs e) {
foreach (var waiting in _waitingList) { // ConcurrentDictionary<string, Request>
var request = waiting.Value;
var msSinceSent = DateTime.UtcNow.Subtract(request.SentAt).TotalMilliseconds;
Debug.WriteLine($"sent *{request.Type}* {msSinceSent} ms ago");
}
}
sent *PackageUpdate* 336.2019 ms ago
sent *PackageUpdate* 698.1145 ms ago
sent *PackageUpdate* 1059.864 ms ago
sent *PackageUpdate* 63693095680615.5 ms ago
Последнее значение огромно, я получаю их так часто и не могу понять, как этодаже возможно.