Example #1
0
 /// <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);
     }
 }
Example #2
0
		/// <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;
			}
		}