private void ResetTimer(int period=0) {
if(period==0) {
if(_waitAck) {
return;
}
if(_sendQueue.Count>0) {
period=_rand.Next(ACK_TIMEOUT*3/4, ACK_TIMEOUT); // 450, 600
} else if(_duration>0) {
period=_duration;
_tryCounter=1;
}
}
//Log.Debug("$ {0}._activeTimer={1}", Owner.name, period);
_activeTimer.Change(period, Timeout.Infinite);
}
private void TimeOut(object o) {