This method completes all the work necessary to find a resource set, and can be recursive and reentrant. In other words, this method might load an assembly and trigger an AssemblyLoad event, which then calls back into a ResourceManager object that has not been completely initialized. To avoid taking extra locks, this method is not thread safe. The GetResourceSet, GetString, and GetObject methods do all the necessary synchronization.