/// <summary> /// Заморозить UI приложения. /// </summary> public IDisposable FreezeUI(IServiceProvider provider) { lock (_freezers) { if (_freezers.Count == 0) { _ctorAsyncOperation.Post( () => { _uiFreezer(false); var notifyIconSvc = provider.GetService <INotifyIconService>(); if (notifyIconSvc != null) { notifyIconSvc.Enabled = false; } } ); } var freezer = new UIFreezer( f => { lock (_freezers) { _freezers.Remove(f); if (_freezers.Count == 0) { _ctorAsyncOperation.Post( () => { _uiFreezer(true); var notifyIconSvc = provider.GetService <INotifyIconService>(); if (notifyIconSvc != null) { notifyIconSvc.Enabled = true; } } ); } } }); _freezers.Add(freezer); return(freezer); } }
/// <summary> /// Заморозить UI приложения. /// </summary> public IDisposable FreezeUI(IServiceProvider provider) { lock (_freezers) { if (_freezers.Count == 0) { _ctorAsyncOperation.Post( () => { _uiFreezer(false); var notifyIconSvc = provider.GetService<INotifyIconService>(); if (notifyIconSvc != null) notifyIconSvc.Enabled = false; } ); } var freezer = new UIFreezer( f => { lock (_freezers) { _freezers.Remove(f); if (_freezers.Count == 0) { _ctorAsyncOperation.Post( () => { _uiFreezer(true); var notifyIconSvc = provider.GetService<INotifyIconService>(); if (notifyIconSvc != null) notifyIconSvc.Enabled = true; } ); } } }); _freezers.Add(freezer); return freezer; } }