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(); }
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(); } } }
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)); }
public void Dispose() { if (items != null) { items.Dispose(); items = null; } }
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); }
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); }
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); } } }
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)); }
string returnmethod() { using (SomeDisposable sd = new SomeDisposable()) return("HELLO WORLD"); }
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();