protected override void Arrange() { base.Arrange(); string queryString = "Select * from Region for xml auto, xmldata"; SqlCommand sqlCommand = database.GetSqlStringCommand(queryString) as SqlCommand; database.BeginExecuteXmlReader(sqlCommand, ar => { barrier.Await(); reader = database.EndExecuteXmlReader(ar); barrier.Await(); }, null); }
protected override void Arrange() { base.Arrange(); numberOforderDetailsInDatabase = (int)database.ExecuteScalar(CommandType.Text, "SELECT count(*) FROM [Order Details]"); //reset number of connections created numberOfConnectionsCreated = 0; database.BeginExecuteNonQuery(transaction, CommandType.Text, "DELETE FROM [Order Details]", ar => { numberOfAffectedRecords = database.EndExecuteNonQuery(ar); barrier.Await(); }, null); }
public void RegisteringAnInstanceInAThreadSetsPerThreadLifetimeManagerWhenResolvingInOtherThreads() { IUnityContainer container = new UnityContainer() .RegisterType <object>(new PerThreadLifetimeManager()); LifetimeManager manager = new PerThreadLifetimeManager(); object registered = new object(); object result = null; object result1A = null; object result1B = null; object result2A = null; object result2B = null; container.RegisterInstance(registered, manager); Barrier barrier = new Barrier(2); RunInParallel( delegate { result1A = container.Resolve <object>(); barrier.Await(); result1B = container.Resolve <object>(); }, delegate { result2A = container.Resolve <object>(); barrier.Await(); result2B = container.Resolve <object>(); }); result = container.Resolve <object>(); Assert.IsNotNull(result1A); Assert.IsNotNull(result2A); Assert.IsNotNull(result); Assert.AreNotSame(result1A, result2A); Assert.AreNotSame(registered, result1A); Assert.AreNotSame(registered, result2A); Assert.AreSame(result1A, result1B); Assert.AreSame(result2A, result2B); Assert.AreSame(registered, result); }
protected override void Act() { database.BeginExecuteReader(CommandType.Text, "SELECT 'hello async world'", ar => { callbackHasRun = true; try { using (IDataReader reader = database.EndExecuteReader(ar)) { canReadOneRecord = reader.Read(); result = reader.GetString(0); canReadSecondRecord = reader.Read(); } } finally { asyncComplete.Await(); } }, null); }
public void LifetimeManagerReturnsDifferentValuesForEachThread() { LifetimeManager ltm = new PerThreadLifetimeManager(); string one = "one"; string two = "two"; string three = "three"; object valueOne = null; object valueTwo = null; object ValueThree = null; Barrier barrier = new Barrier(3); RunInParallel( delegate { ltm.SetValue(one); barrier.Await(); valueOne = ltm.GetValue(); }, delegate { ltm.SetValue(three); barrier.Await(); ValueThree = ltm.GetValue(); }, delegate { ltm.SetValue(two); barrier.Await(); valueTwo = ltm.GetValue(); }); Assert.AreSame(one, valueOne); Assert.AreSame(two, valueTwo); Assert.AreSame(three, ValueThree); }
public virtual void Run() { var m = From; var n = To; try { for (; m <= n; m++) { var o = Body.DynamicInvoke(m); } } finally { } Barrier.Await(); }
public override void Run() { var m = From; var n = To; try { for (; m <= n; m++) { Body(m); } } finally { } Barrier.Await(); }