public string Push(Job j) { string node; _nListLock.EnterReadLock(); try { _index = (_index + 1) % (_nodesList.Count); node = _nodesList[_index]; } finally { _nListLock.ExitReadLock(); } j.SetAtt("workNode", node); _aT.PushObject(node, j); return(node); }