by Raize Support » Fri Apr 13, 2012 2:06 pm
I'm not sure I fully understand all of the details. I understand that you have a DLL that makes calls to CodeSite in order to log exception messages and other logging data.
When your DLL makes a call to CodeSite, the CodeSite logger object will check to see if the Dispatcher is running. If the Dispatcher is not running, the logger will try to start it. If the Dispatcher is not installed on the machine, then the logger will disable itself, which means the logger will not try look for nor start the dispatcher again. When the logger is disabled, there is no impact on the execution of your code. I suppose, if you are forcing the logger to become Enabled again, then the logger could be checking for the dispatcher and trying to start it.
When the Dispatcher is present, the logger in your DLL will send its logging messages to the Dispatcher. The Dispatcher queues these messages and returns control back to the logger. If you are generating a lot of messages, it is possible that the Dispatcher is working harder to queue the incoming messages and then write them out. You can see this by looking at the Dispatcher icon (if it is visible in the system tray). The interior of the logo will become more solidly yellow as the workload increases. However, the priority of the Dispatcher is in the queuing of the messages, so control returns more quickly to your application.
Ray