Esempio n. 1
0
        private void WorkInSharedAppdomain(StabilityTestDefinition metadata, int threadId)
        {
            //The Marshaled worker class should behave normally in context of it's own domain
            MarshaledWorker worker = new MarshaledWorker();

            worker.DoWork(metadata, threadId);
        }
Esempio n. 2
0
        /// <summary>
        /// Configures a new Appdomain for executing the stress test within
        /// </summary>
        /// <param name="metadata"></param>
        /// <param name="threadId"></param>
        private void WorkInNewAppDomain(StabilityTestDefinition metadata, int threadId)
        {
            AppDomainSetup ads = new AppDomainSetup();

            ads.ApplicationBase          = System.Environment.CurrentDirectory;
            ads.DisallowBindingRedirects = false;
            ads.DisallowCodeDownload     = false;
            ads.ConfigurationFile        = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
            string exeAssembly       = Assembly.GetEntryAssembly().FullName;
            string callingDomainName = Thread.GetDomain().FriendlyName;

            AppDomain       a      = AppDomain.CreateDomain("Worker " + threadId.ToString(), null, ads);
            MarshaledWorker worker = (MarshaledWorker)a.CreateInstanceAndUnwrap(Assembly.GetCallingAssembly().FullName, typeof(MarshaledWorker).FullName);

            worker.DoWork(metadata, threadId);
            AppDomain.Unload(a);
        }