示例#1
0
 void _cms_ThreadReadEvent(object sender, ThreadReadEventArgs e)
 {
     if (_currentThreadReadRequest == null)
     {
         RunThreadRequest(e);
     }
     else
     {
         _threadReadRequests.Enqueue(e);
     }
 }
示例#2
0
        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);
        }
示例#3
0
 void thread_ReadCompleteEvent(object sender, ReadCompleteEventArgs e)
 {
     _currentThreadReadRequest = null;
     if (_threadReadRequests.Count > 0)
     {
         ThreadReadEventArgs next = _threadReadRequests.Dequeue();
         if (next != null)
         {
             RunThreadRequest(next);
         }
     }
 }
示例#4
0
        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);
                }
            }
        }
示例#5
0
        private void ReadThread(String url)
        {
            ThreadReadEventArgs e = new ThreadReadEventArgs(url, 1, 100, "chips");

            _cms_ThreadReadEvent(this, e);
        }