質問

I have a C# Windows application I'm working on where I kick off different classes in their own thread (ie: Class1 instance in Thread 1, Class 2 instance in Thread 2, etc).

I'm trying to correctly suspend/resume the threads, but I can't figure out how to share the lock variables for Wait/Pulse of Monitor between different classes and threads.

It seems like this should have a simple answer, I just can't figure it out. I'd really appreciate any help!

Thanks!

役に立ちましたか?

解決

use public static fields, for ex.,

public class Sync
{
    public static object LockObject = new object();
    //or any other sync mechanism 
    //AutoResetEvent,ManualResetEvent,Semaphore,CountdownEvent,Mutex etc.
}

他のヒント

Monitor locking is useful for shnchronization, but when used as a messaging API it usually only scales to two threads, since you need to know exactly where each to know if it gets the message.

When things get complex, an AutoResetEvent or ManualResetEvent is usually more sensible, as they are less time critical: you get through the gate regardless of ordering.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top