using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using Autodesk.Revit.DB; namespace KMBIM { public class KDCSRequest { // Storing the value as a plain Int makes using the interlocking mechanism simpler private List m_lstAvoidance = null; /// /// Take - The Idling handler calls this to obtain the latest request. /// /// /// This is not a getter! It takes the request and replaces it /// with 'None' to indicate that the request has been "passed on". /// /// public List Take() { return (List)Interlocked.Exchange(ref m_lstAvoidance, (List)null); } /// /// Make - The Dialog calls this when the user presses a command button there. /// /// /// It replaces any older request previously made. /// /// public void Make(List lstSkNozzle) { Interlocked.Exchange(ref m_lstAvoidance, (List)lstSkNozzle); } } }