// Use this for initialization public override NodePort GetOutputPort() { var outputEnumerator = DynamicOutputs.GetEnumerator(); for (int i = 0; i < index + 1; i++) { outputEnumerator.MoveNext(); } return(outputEnumerator.Current); }
////////////////////////////////////////////////////////////////////////// public override IEnumerator Activate() { // activate nodes foreach (var port in DynamicOutputs .Where(n => n.fieldName.StartsWith(nameof(m_Next))) .OrderBy(n => int.Parse(n.fieldName.Substring(nameof(m_Next).Length)))) // order by index for assurance { if (port.IsConnected && port.Connection?.node is IActivationNode logicNode) { yield return(logicNode.Activate()); } } }
public void Dispose() { workerTokenSrc.Cancel(); StopRlmDbWorkersSessions(); StopRlmDbWorkersCases(); BestSolutions?.Clear(); BestSolutionStaging?.Clear(); Sessions?.Clear(); Rneurons?.Clear(); Solutions?.Clear(); if (SessionsQueueToCreate != null && SessionsQueueToCreate.Count > 0) { Session removedSess; foreach (var item in SessionsQueueToCreate) { SessionsQueueToCreate.TryDequeue(out removedSess); } } if (SessionsQueueToUpdate != null && SessionsQueueToUpdate.Count > 0) { Session removedSess; foreach (var item in SessionsQueueToUpdate) { SessionsQueueToUpdate.TryDequeue(out removedSess); } } DynamicInputs?.Clear(); DynamicOutputs?.Clear(); if (GPUMode) { if (rneuronProcessor is IDisposable) { (rneuronProcessor as IDisposable).Dispose(); } } }