Do you have access to the code profiler? This is the thing they are good at. I recommend getting one if no answer.
In addition to using the profiler. You can do a poor person profiling by putting synchronization instructions at the beginning and end of the code blocks that you suspect. You can even use breakpoints and time with a wall clock. Is there a problem when you click something? If so, start there. Is this a recurring problem without user interaction? Start with timers.
As for the actual solution to the problem ... If the intruder handler does not do something that can be done more efficiently, consider using a multi-threaded approach. The new task library for .NET 4.0 is truly amazing in this regard.
source share