It seems a lot work. how about only make Application class and GetApplicationByID method thread safe(by PostTask)?