线程概念

发布于 2024-08-09 14:42:17 字数 34 浏览 2 评论 0原文

线程不应启动调用启动方法的事件。这可能吗?在 c# 中

A thread should not start event the start method is called.. is it possible? in c#

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

山色无中 2024-08-16 14:42:17

如这段代码所示,线程会自动创建为处于挂起状态,并且在您调用 start 之前不会启动。

class Program
{
   static void Main(string[] args)
   {
      Worker w = new Worker();
      Console.ReadKey();
      w.Start();
      Console.ReadKey();
      w.Stop();
      Console.ReadKey();
   }
}

class Worker
{
   System.Threading.Thread workerThread;
   bool work;

   public Worker()
   {
      System.Threading.ThreadStart ts = new System.Threading.ThreadStart(DoWork);
      workerThread = new System.Threading.Thread(ts);
   }

   public void Start()
   {
      work = true;
      workerThread.Start();
   }

   public void Stop()
   {
      work = false;
   }

   private void DoWork()
   {
      while(work)
      {
         Console.WriteLine(System.DateTime.Now.ToLongTimeString());
         System.Threading.Thread.Sleep(1000);
      }
   }
}

(这是在 .NET 3.5 上用 C# 创建的,2.0 的线程是否有所不同?)

As this code demonstrates, the thread automatically is created in a suspended state and will not start until you call start.

class Program
{
   static void Main(string[] args)
   {
      Worker w = new Worker();
      Console.ReadKey();
      w.Start();
      Console.ReadKey();
      w.Stop();
      Console.ReadKey();
   }
}

class Worker
{
   System.Threading.Thread workerThread;
   bool work;

   public Worker()
   {
      System.Threading.ThreadStart ts = new System.Threading.ThreadStart(DoWork);
      workerThread = new System.Threading.Thread(ts);
   }

   public void Start()
   {
      work = true;
      workerThread.Start();
   }

   public void Stop()
   {
      work = false;
   }

   private void DoWork()
   {
      while(work)
      {
         Console.WriteLine(System.DateTime.Now.ToLongTimeString());
         System.Threading.Thread.Sleep(1000);
      }
   }
}

(This was created with C# on .NET 3.5, was threading different for 2.0?)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文