public bool ReadValue(out float val, int outTime) { ValueListener listener = new ValueListener(); bool retVal; lock (valueListeners) { valueListeners.Add(listener); } if (listener.WaitEvent.WaitOne(outTime, false)) { val = listener.Val; retVal=true; goto End; } else { val = 0; retVal = false; goto End; } End: lock (valueListeners) { valueListeners.Remove(listener); } return retVal; }
public bool ReadValue(out float val, int outTime) { ValueListener listener = new ValueListener(); bool retVal; lock (valueListeners) { valueListeners.Add(listener); } if (listener.WaitEvent.WaitOne(outTime, false)) { val = listener.Val; retVal = true; goto End; } else { val = 0; retVal = false; goto End; } End: lock (valueListeners) { valueListeners.Remove(listener); } return(retVal); }