Thanks for your reply.
I already try that before, but it my case the program structure is little different.
The problem is that the program has 2 phases:
1. Managed class creates a delegate and sends it to unmanaged class which assigns it to a function pointer member.
2. The unmanaged class listens to events from other place and when a specific event occurred then the unmanaged class should call the function in the managed class.
(From the first phase)
Maybe there is no different between cases but I still get this error.