Seems like a slighly imprecise way of counting time compared to starting with DateTime.Now and comparing with latest Now. I guess you have more of an iteration count than a timeout.