C# 暂停线程

C# 暂停线程,c#,multithreading,C#,Multithreading,我正在使用以下代码创建和执行线程我需要停止它,但看不到线程。睡眠 有什么主意吗?我怎么能在那里停一会儿 var t = new Thread(() => { try { //Line 1 Pause here //Line 2 Pause here //Line 3 } catch (Exception ca) { Message

我正在使用以下代码创建和执行线程我需要停止它,但看不到线程。睡眠

有什么主意吗?我怎么能在那里停一会儿

var t = new Thread(() =>
{
try
   {
           //Line 1
             Pause here
           //Line 2
             Pause here
           //Line 3
   }
   catch (Exception ca)
   {
          MessageBox.Show(ca.Message);
   }
   });
   t.SetApartmentState(ApartmentState.STA);
   t.Start();

在代理内部使用静态方法
Thread.Sleep(int)


将当前线程挂起一段指定的时间。

是否正在查找
System.Threading.thread.Sleep()
方法?

如果您的意思是要指示线程在特定的检查点等待,直到其他线程通知它继续,一个好的选择是使用。

在代码顶部添加这一行:

using System.Threading;
然后您可以看到
Thread.Sleep()

我会假设这是故意的。为了满足STA合同,你必须做几件事。您必须启动一个消息循环,调用Application.Run()。您不能暂停,这会阻止任何封送的调用,并很可能导致死锁


这不是问题,当您启动消息循环时,您总是处于空闲的“暂停”状态。让代码像通常在GUI主线程中一样运行。Application.ExitThread结束线程。

知道为什么不能使用thread.Sleep吗?注意:
MessageBox.Show在线程中不起作用,您必须在主线程中调用它。
  t.SetApartmentState(ApartmentState.STA);