In the VCL, there's a TEvent class. The TEvent class represents an OS semaphore. To simplify my explanation, TEvent is like a traffic stop.

However, there's two kinds of traffic stops. One is an automatic traffic stop that resets by itself, one is a manual traffic stop that needs someone to reset it. A TEvent has a binary state. At any given moment, it is in one state, or the other state, but not both. So, you can think of it's state as on, or off, false, or true, etc.

A TEvent can be used like a signal, between threads, processes, and so on. You can give a name to a TEvent instance. If you (ProcThreadA) create a TEvent instance and give it a name (let's call it A), then, any other threads or processes (ProcThreadB, ProcThreadC, etc...) that attempts to create a TEvent instance and give it the SAME name, will be referring to TEvent “A”. So, supposing you (ProcThreadA) now set TEvent “A” to be “on”, when ProcThreadB or ProcThreadC reads the status of the TEvent instance, it will be “on”.

Now, to my point. Why doesn't the NET Framework implement named events?

Specifically, I want to do simple IPC using named events, and it seems  to me if the NET Framework can't do it, I'll have to do some P/Invoke to get it done.