void _cms_ThreadReadEvent(object sender, ThreadReadEventArgs e) { if (_currentThreadReadRequest == null) { RunThreadRequest(e); } else { _threadReadRequests.Enqueue(e); } }
void RunThreadRequest(ThreadReadEventArgs e) { _currentThreadReadRequest = e; Trace.TraceInformation("Request to read {0}", e.URL); Int32 pageStart = (e.StartPost - 1) / _forum.PostsPerPage; Int32 pageEnd = (e.EndPost - 1) / _forum.PostsPerPage; ThreadReader thread = _forum.Reader(); thread.PageCompleteEvent += new EventHandler <PageCompleteEventArgs>(thread_PageCompleteEvent); thread.ReadCompleteEvent += new EventHandler <ReadCompleteEventArgs>(thread_ReadCompleteEvent); thread.ReadPages(e.URL, pageStart, pageEnd, e); }
void thread_ReadCompleteEvent(object sender, ReadCompleteEventArgs e) { _currentThreadReadRequest = null; if (_threadReadRequests.Count > 0) { ThreadReadEventArgs next = _threadReadRequests.Dequeue(); if (next != null) { RunThreadRequest(next); } } }
void thread_PageCompleteEvent(object sender, PageCompleteEventArgs e) { ThreadReader tr = sender as ThreadReader; ThreadReadEventArgs readArgs = e.Cookie as ThreadReadEventArgs; foreach (Post p in e.Posts) { if ((p.PostNumber >= readArgs.StartPost) && (p.PostNumber <= readArgs.EndPost)) { _cms.PublishPost(readArgs.URL, readArgs.ID, p, e.TimeStamp); } } }
private void ReadThread(String url) { ThreadReadEventArgs e = new ThreadReadEventArgs(url, 1, 100, "chips"); _cms_ThreadReadEvent(this, e); }