public void LoadViewer() { if (Loaded) { return; } var thread = new Thread(() => Invoke((MethodInvoker) delegate() { var word = new WordHelper(); if (word.Connect()) { var g = Guid.NewGuid(); string newFileName = Path.Combine(ResourceManager.Instance.TempFolder.LocalPath, g + ".html"); word.ConvertToHtml(File.FullName, newFileName); word.Disconnect(); webBrowser.Url = new Uri(newFileName); } Loaded = true; })); FormProgress.SetTitle("Chill-Out for a few seconds...\nLoading Page..."); FormProgress.ShowProgress(); Application.DoEvents(); thread.Start(); while (thread.IsAlive) { Application.DoEvents(); } FormProgress.CloseProgress(); }