public async Task RunAwaiting()
 {
     // await the Whatever method, and *then* dispose the disposable
     // so we pay for the async/await state machine, but not for the continuation
     using var disposable = new SomeDisposable();
     await Whatever();
 }
コード例 #2
0
        object BuildAmqpBatchFromMessageNoLinq(IEnumerable <object> source, bool forceBatch)
        {
            IDisposable        firstAmqpMessage        = null;
            object             firstMessage            = null;
            List <IDisposable> amqpMessagesForBatching = new List <IDisposable>();

            try
            {
                foreach (var sbMessage in source)
                {
                    if (firstAmqpMessage == null)
                    {
                        firstAmqpMessage = new SomeDisposable();
                        firstMessage     = sbMessage;
                        amqpMessagesForBatching.Add(firstAmqpMessage);
                    }
                    else
                    {
                        amqpMessagesForBatching.Add(new SomeDisposable());
                    }
                }

                var amqpMessageBatch = BuildAmqpBatchFromMessagesNoLinq(amqpMessagesForBatching, firstMessage, forceBatch);
                return(amqpMessageBatch);
            }
            finally
            {
                foreach (var disposable in amqpMessagesForBatching)
                {
                    disposable.Dispose();
                }
            }
        }
コード例 #3
0
        public void Clear_ShouldDisposeAllDisposables()
        {
            var firstOverrideDisposable  = new SomeDisposable();
            var secondOverrideDisposable = new SomeDisposable();
            var firstDefaultDisposable   = new SomeDisposable();
            var secondDefaultDisposable  = new SomeDisposable();

            var all = new[]
            {
                firstDefaultDisposable,
                secondDefaultDisposable,
                firstOverrideDisposable,
                secondOverrideDisposable
            };

            var settings = new SettingsHolder();

            settings.Set("1.Override", firstOverrideDisposable);
            settings.Set("2.Override", secondOverrideDisposable);
            settings.SetDefault("1.Default", firstDefaultDisposable);
            settings.SetDefault("2.Default", secondDefaultDisposable);

            settings.Clear();

            Assert.IsTrue(all.All(x => x.Disposed));
        }
コード例 #4
0
        public void Clear_ShouldDisposeAllDisposables()
        {
            var firstOverrideDisposable = new SomeDisposable();
            var secondOverrideDisposable = new SomeDisposable();
            var firstDefaultDisposable = new SomeDisposable();
            var secondDefaultDisposable = new SomeDisposable();

            var all = new[]
            {
                firstDefaultDisposable,
                secondDefaultDisposable,
                firstOverrideDisposable,
                secondOverrideDisposable
            };

            var settings = new SettingsHolder();
            settings.Set("1.Override", firstOverrideDisposable);
            settings.Set("2.Override", secondOverrideDisposable);
            settings.SetDefault("1.Default", firstDefaultDisposable);
            settings.SetDefault("2.Default", secondDefaultDisposable);

            settings.Clear();

            Assert.IsTrue(all.All(x => x.Disposed));
        }
コード例 #5
0
 public void Dispose()
 {
     if (items != null)
     {
         items.Dispose();
         items = null;
     }
 }
コード例 #6
0
 protected override void DoSetUp()
 {
     SomeDisposable.Reset();
     Console.WriteLine("Running setup for {0}", typeof(TFactory));
     factory = new TFactory();
     adapter = factory.Create();
     RebusLoggerFactory.Current = new ConsoleLoggerFactory(false);
 }
コード例 #7
0
 public void SomeMethod2()
 {
     using (var _ = new SomeDisposable())
     {
         foreach (var __ in Enumerable.Range(0, 10))
         {
             Console.WriteLine();
         }
     }
 }
        public Task RunContinuation()
        {
            // return the Whatever() task without awaiting, with a continuation
            // which will dispose the disposable once the task has completed,
            // so we pay for the continuation, but not for the async/await state machine
            var disposable = new SomeDisposable();

            return(ThenDispose(Whatever(), disposable));

            // could be this with an extension method
            //return Whatever().ThenDispose(disposable);
        }
コード例 #9
0
ファイル: N3112.cs プロジェクト: zwmyint/Bridge
            public void DoSomething()
            {
                for (var i = 0; i < 1; i++)
                {
                    using (var d = new SomeDisposable())
                    {
                        d.Data = 7;

                        Action <int> action = (n) => { this.Number = n; var d1 = d; };

                        action(d.Data);
                    }
                }
            }
コード例 #10
0
        object BuildAmqpBatchFromMessageLinq(IEnumerable <object> source, bool forceBatch)
        {
            IDisposable firstAmqpMessage = null;
            object      firstMessage     = null;

            return(BuildAmqpBatchFromMessagesLinq(
                       source.Select(sbMessage =>
            {
                if (firstAmqpMessage == null)
                {
                    firstAmqpMessage = new SomeDisposable();
                    firstMessage = sbMessage;
                    return firstAmqpMessage;
                }
                else
                {
                    return new SomeDisposable();
                }
            }).ToList(), firstMessage, forceBatch));
        }
コード例 #11
0
 string returnmethod()
 {
     using (SomeDisposable sd = new SomeDisposable())
         return("HELLO WORLD");
 }
コード例 #12
0
        public MethodAndConstructorWithOneIndentationOnly()
        {
            if (new Random().Next() % 2 == 0)
            {
                Console.WriteLine();
            }
            else
            {
                Console.WriteLine();
            }

            try
            {
                Console.WriteLine();
            }
            catch (InvalidOperationException)
            {
                Console.WriteLine();
            }
            catch
            {
                Console.WriteLine();
            }
            finally
            {
                Console.WriteLine();
            }

            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine();
            }

            foreach (var _ in Enumerable.Range(0, 10))
            {
                Console.WriteLine();
            }

            do
            {
                Console.WriteLine();
            } while (new Random().Next() % 2 == 0);

            while (new Random().Next() % 2 == 0)
            {
                Console.WriteLine();
            }

            lock (new object())
            {
                Console.WriteLine();
            }

            using (var _ = new SomeDisposable())
            {
                Console.WriteLine();
            }

            switch (new Random().Next() % 2 == 0)
            {
            case true:
                Console.WriteLine();
                break;

            default:
                Console.WriteLine();
                break;
            }

            SomeLocalFunction();