p/invoke を使用して C# コードにアタッチされた、動作中のアンマネージ C++ DLL があります。
[DllImport("p2p.dll", EntryPoint = "Start")]
public static extern void Start();
[STAThread]
static void Main()
{
Thread th= new Thread(Start);
th.Start();
....
このようにして、C++ コードから情報を取得できますが、C++ コードが C# 関数をトリガーする必要がある場合、すべての要求をキューに入れてスレッドで C# からチェックするのではなく、スマートな方法でそれを行うにはどうすればよいでしょうか。