public void Load() { UIUpdater.ChangeStatus("Loading"); loader.OnProgressChanged += percentage => UIUpdater.ChangeProgress(percentage); if (!loader.LoadAdditionalDlls() || ended) { return; } ForEach <ICommunicationInterface>(ci => parent.InitializeCommunicationInterface(ci)); UIUpdater.ChangeStatus("Connecting"); UIUpdater.ChangeSubstatus("This can take a while"); UIUpdater.ChangeProgress(ProgressChangeType.ProcessIsIndeterminate); ForEach <ICommunicationInterface>(ci => ci.Connect()); UIUpdater.ChangeProgress(ProgressChangeType.ProcessCompleted); }