I have a working unmanaged C++ DLL which is attached to my C# code using p/invoke
[DllImport("p2p.dll", EntryPoint = "Start")]
public static extern void Start();
[STAThread]
static void Main()
{
Thread th= new Thread(Start);
th.Start();
....
This way i can retrieve information from my C++ code, but if my C++ code needs to trigger a C# function then how do i do it in a smart way rather than putting all request in a queue and checking it from C# in a thread.