如何在一个地方暂停多个线程,然后让一个线程做一些事情?C#(Zennoposter)
我对线程和类似的东西非常熟悉。我知道如何使用锁结构,但没有其他东西。但现在是时候了 我在Zennoposter上有一个多线程的程序。我使用C#在那里编写代码。一切正常,但现在我有一个问题。我需要通过一个线程在程序的某些地方执行一段代码(我必须运行一个应用程序并初始化project.Tables)。我试过两种方法:如何在一个地方暂停多个线程,然后让一个线程做一些事情?C#(Zennoposter),c#,multithreading,synchronization,thread-safety,autoresetevent,C#,Multithreading,Synchronization,Thread Safety,Autoresetevent,我对线程和类似的东西非常熟悉。我知道如何使用锁结构,但没有其他东西。但现在是时候了 我在Zennoposter上有一个多线程的程序。我使用C#在那里编写代码。一切正常,但现在我有一个问题。我需要通过一个线程在程序的某些地方执行一段代码(我必须运行一个应用程序并初始化project.Tables)。我试过两种方法: 我暂停了所有线程,除了代码之前的最后一个线程和执行代码的最后一个线程。但这对我不起作用。我列出了一个线程列表,检查了它们的状态,如果状态不是挂起的,我就挂起它。但是我没有让最后一个线程
static AutoResetEvent waitHandler=new AutoResetEvent(true);
)。然后在使用“单线程执行”放入代码之前,我必须暂停我使用的所有线程waitHandler.WaitOne()代码>使每个线程等待。在这段代码之后,我使用了waitHandler.Set()
允许其他线程执行waitHandler
。但它与锁结构一样:(
锁定(同步对象){
//这里您的代码仅用于1个线程,其他线程等待
}