public void test()
        {
            var container = new Container(x =>
                                                            {
                                                                x.For<IGrandParent>().Use<GrandParent>();
                                                                x.For<IParent>().Use<Parent>();
                                                                x.For<IChild>().Use<Child>();
                                                                x.For<IGrandChild>().Use<GrandChild>();
                                                            });

            var tasks = new[]
                        {
                            new Task(() => container.Get<IGrandParent>(), TaskCreationOptions.LongRunning),
                            new Task(() => container.Get<IGrandParent>(), TaskCreationOptions.LongRunning)
                        };
            tasks.ForEach(x => x.Start());
            Task.WaitAll(tasks);
        }