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);
        }
Exemplo n.º 6
0
            public virtual void Run()
            {
                var m = From;
                var n = To;

                try
                {
                    for (; m <= n; m++)
                    {
                        var o = Body.DynamicInvoke(m);
                    }
                }
                finally
                {
                }

                Barrier.Await();
            }
Exemplo n.º 7
0
            public override void Run()
            {
                var m = From;
                var n = To;

                try
                {
                    for (; m <= n; m++)
                    {
                        Body(m);
                    }
                }
                finally
                {
                }

                Barrier.Await();
            }