<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: threads code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Thu, 24 Jul 2008 22:08:02 GMT</pubDate>
    <description>DZone Snippets: threads code</description>
    <item>
      <title>"Extend" the thread class in csharp</title>
      <link>http://snippets.dzone.com/posts/show/4230</link>
      <description>//just inherit from the EasyThread class and override the PerformWork method&lt;br /&gt;&lt;br /&gt;   public class EasyThread: IDisposable&lt;br /&gt;    {&lt;br /&gt;        Thread WorkerThread;&lt;br /&gt;        public EasyThread()&lt;br /&gt;        {&lt;br /&gt;            if (WorkerThread == null)&lt;br /&gt;                WorkerThread = new Thread(new ThreadStart(PerformWork));&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        public void Run()&lt;br /&gt;        {&lt;br /&gt;            if (WorkerThread.IsAlive == false)&lt;br /&gt;                WorkerThread.Start();&lt;br /&gt;&lt;br /&gt;            if (WorkerThread.ThreadState == ThreadState.Suspended)&lt;br /&gt;                WorkerThread.Resume();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        /// &lt;summary&gt;&lt;br /&gt;        /// EasyThread provides a facade to inheriting from a Thread class.&lt;br /&gt;        /// Override the perform work method to perform your tasks.&lt;br /&gt;        /// &lt;/summary&gt;&lt;br /&gt;        protected virtual void PerformWork()&lt;br /&gt;        {&lt;br /&gt;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public void Pause()&lt;br /&gt;        {&lt;br /&gt;            WorkerThread.Suspend();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public void Quit()&lt;br /&gt;        {&lt;br /&gt;            Cleanup();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private void Cleanup()&lt;br /&gt;        {&lt;br /&gt;            WorkerThread.Join(0);&lt;br /&gt;            WorkerThread = null;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public void Dispose()&lt;br /&gt;        {&lt;br /&gt;            Cleanup();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;</description>
      <pubDate>Fri, 29 Jun 2007 16:14:22 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4230</guid>
      <author>PWeaver (charlie parker)</author>
    </item>
  </channel>
</rss>
