static async UniTaskVoid ConsumeAll(_Queue self, IUniTaskAsyncEnumerator <TSource> enumerator, ChannelWriter <TSource> writer) { try { while (await enumerator.MoveNextAsync()) { writer.TryWrite(enumerator.Current); } writer.TryComplete(); } catch (Exception ex) { writer.TryComplete(ex); } finally { self.channelClosed = true; await enumerator.DisposeAsync(); } }
private void BFS(Node root) { if (root != null) { _Queue <Node> q = new _Queue <Node>(); q.Enqueue(root); while (!q.isEmpty()) { var node = q.Dequeue(); if (node != null) { Console.WriteLine("Element : {0}", node.Value); } if (node.LeftChild != null) { q.Enqueue(node.LeftChild); } if (node.RightChild != null) { q.Enqueue(node.RightChild); } } } }