Exemple #1
0
        private void AddToScope(IDisposalScope scope, ManualResetEvent syncEvent)
        {
            syncEvent.WaitOne();

            for (int i = 0; i < 10000; i++)
            {
                scope.AddDisposable(new DisposableItem());
            }
        }
Exemple #2
0
        private void AddToScopeWithCleanup(IDisposalScope scope, ManualResetEvent syncEvent, Action <DisposableItem> action)
        {
            syncEvent.WaitOne();

            for (int i = 0; i < 10000; i++)
            {
                scope.AddDisposable(new DisposableItem(), action);
            }
        }
Exemple #3
0
        /// <summary>
        /// Add instance to disposal scope and return it
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="disposalScope"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public static T AddToDisposalScope <T>(IDisposalScope disposalScope, T value)
        {
            var disposable = value as IDisposable;

            if (disposable != null)
            {
                disposalScope.AddDisposable(disposable);
            }

            return(value);
        }
Exemple #4
0
        /// <summary>
        /// Add to disposal scope or use default
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="disposalScope"></param>
        /// <param name="tValue"></param>
        /// <param name="defaultValue"></param>
        /// <returns></returns>
        public static T AddToDisposableScopeOrDefault <T>(IDisposalScope disposalScope, T tValue, T defaultValue)
        {
            if (tValue != null)
            {
                var disposable = tValue as IDisposable;

                if (disposable != null)
                {
                    disposalScope.AddDisposable(disposable);
                }

                return(tValue);
            }

            return(defaultValue);
        }
Exemple #5
0
        /// <summary>
        /// Check for null and then add to disposal scope
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="disposalScope"></param>
        /// <param name="context"></param>
        /// <param name="value"></param>
        /// <returns></returns>
        public static T CheckForNullAndAddToDisposalScope <T>(IDisposalScope disposalScope,
                                                              StaticInjectionContext context, T value)
        {
            if (value == null)
            {
                throw new NullValueProvidedException(context);
            }

            var disposable = value as IDisposable;

            if (disposable != null)
            {
                disposalScope.AddDisposable(disposable);
            }

            return(value);
        }