public override bool Read() { if (started) { if (nest == 0) { source.Read(); return(false); // already consumed } if (!source.Read()) { return(false); } } else { started = true; } switch (source.NodeType) { case XamlNodeType.StartObject: case XamlNodeType.GetObject: case XamlNodeType.StartMember: nest++; break; case XamlNodeType.EndObject: case XamlNodeType.EndMember: nest--; break; } return(true); }
public static void Transform(XamlReader xamlReader, XamlWriter xamlWriter, bool closeWriter) { if (xamlReader == null) { throw new ArgumentNullException("xamlReader"); } if (xamlWriter == null) { throw new ArgumentNullException("xamlWriter"); } if (xamlReader.NodeType == XamlNodeType.None) { xamlReader.Read(); } while (!xamlReader.IsEof) { xamlWriter.WriteNode(xamlReader); xamlReader.Read(); } if (closeWriter) { xamlWriter.Close(); } }
public void StartThread(string threadName) { if (thread != null) { throw new InvalidOperationException("Thread has already started"); } thread = new Thread(new ParameterizedThreadStart(delegate { while (do_work && r.Read()) { q.Writer.WriteNode(r); wait.Set(); } read_all_done = true; })) { Name = threadName }; thread.Start(); }