These suggestions are, from my point of view, pretty large-scale solutions, appropriate for an enterprise.
Since you're using C# (.NET), Windows is a safe assumption? Fortunately on the Windows platform there's a simpler, and 'closer to the metal' solution.
Use COM / C# events. These are...