We changed FdoCache.CreateNewLangProj so that it no longer takes a ThreadHelper, but instead takes an ISynchronizeInvoke. We don't have to create a ThreadHelper anymore. We can now pass in the parent form instead, because it implements ISynchronizeInvoke, which won't be disposed in this method. Does that make sense?