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);