Тема: MEF створення елементів в різних потоках.
Є наступна модель: ASP.NET MVC 4 проект, в контроллерах використовуються самописні class Service, котрі виконують операції (вибірка/додавання/редагування). За створення цих об'єктів відповідаеє MEF. В дуже спрощенному вигляді виникає ось така проблема: при одночасному створені двох об'єктів виникає виключення: Выполняется составление другого пакета в этом ComposablePartExportProvider. Одновременное составление нескольких пакетов не поддерживается.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.ComponentModel.Composition;
using System.ComponentModel.Composition.Hosting;
using System.Reflection;
 
namespace ConsoleApplication1
{
    class Program
    {
        static CompositionContainer container;
 
        static void Main(string[] args)
        {
            container = new CompositionContainer(new AssemblyCatalog(Assembly.GetExecutingAssembly()));
            var tasks = new TaskFactory();          
            var t1 = tasks.StartNew(Run);
            var t2 = tasks.StartNew(Run);
            t1.Wait();
            t2.Wait();
            Console.WriteLine("complite...");
            Console.ReadKey();
        }
 
        private static void Run()
        {
            var service  = new Service();
            container.ComposeParts(service);
            service.PrintData();
            Thread.Sleep(10000);
            service.PrintData();
        }
    }
 
    public class Service
    {
        [Import(typeof(Repository))]
        private Repository Repository { get; set; }
 
        public void PrintData()
        {
        }
    }
 
    [Export(typeof(Repository))]
    public class Repository
    {
    }
}