private void StartTimeoutWatch()
{
if (_ignoreTimeout)
return;
_timeoutChecksToSkip = TimeoutCheckFrequency;
// We are using Environment.TickCount and not Timewatch for performance reasons.
// Environment.TickCount is an int that cycles. We intentionally let timeoutOccursAt
// overflow it will still stay ahead of Environment.TickCount for comparisons made
// in DoCheckTimeout():
unchecked
{
_timeoutOccursAt = Environment.TickCount + _timeout;
}
}