private void processNextTransfer() { LTTransfer nextItem = null; lock (_transferLock) { if (_transfers.Count() > 0) { nextItem = _transfers[0]; _transfers.RemoveAt(0); } } if (nextItem != null) { // Trigger execution of transfers Task.Run(() => { Logger.Debug("process transfer: " + nextItem.ToString()); nextItem.performTask(); }) .ContinueWith(delegate { processNextTransfer(); }); } else { _transferInProgress = false; } }
public override bool IsEqual(LTTransfer other) { if (IsSameType(other) && other is LTTransferTiming otherStatus) { return(_dg == otherStatus._dg && _data == otherStatus._data); } return(false); }
public override bool IsEqual(LTTransfer other) { if (IsSameType(other) && other is LTTransferParticpants otherStatus) { return(_data == otherStatus._data); } return(false); }
private void scheduleTransfer(LTTransfer transfer) { lock (_transferLock) { // Remove all outdated transfers _transfers.RemoveAll(x => x.IsEqual(transfer)); _transfers.Add(transfer); } if (!_transferInProgress) { _transferInProgress = true; processNextTransfer(); } }
public bool IsSameType(LTTransfer other) { return(_type == other._type); }
public abstract bool IsEqual(LTTransfer other);