If you have a large (or extremely difficult) code base and are experiencing delays like this, I recommend that you turn off the following items on Tools > Options > File Extension Setup, Tagging tab.
[ ] Auto-list compatible values
[ ] Auto-list compatible parameters
By "extremely difficult", I mean code that makes heavy use of templates, especially template meta-programming, or makes heavy use of overloading and/or namespace/package scoping. These two "auto-list compatible ..." features are trying to determine for each variable in the immediate scope whether or not it is (at least loosely) assignment compatible in the current context. The harder the type compatibility is to calculate, the longer it takes. Who would have thunk it?
Turning off the "auto" versions of these features does not take away the features, you can still invoke them on demand by pressing Alt+Comma (function-argument-help), which will work in both cases mentioned.
Another good performance boost is to increase the size of your tag file cache (Tools > Options > General, Virtual Memory tab). Try to make it large enough (within reason) so that we can get your entire workspace tag file and extension specific tag files into memory instead of having to page in and out disk blocks.
For C#, there is a special consideration. If you turn off "Show Comments", you might see some performance improvements, since it will allows us to avoid loading the large XML files that Microsoft packages their .NET library documentation in.
The good news is that we have made some general performance improvements to the tagging engine for 12.0. The bad news, is that no matter what we do, Boost and the STL will always make it convoluted and difficult to get from point A to point B due to the heavy use of typedefs and template meta-programming.