
Untitled
By: a guest on
May 8th, 2012 | syntax:
None | size: 0.65 KB | hits: 13 | expires: Never
## Test
[TestMethod()]
public void ThreadSingletonShouldBecollectedwhenThreadFinished()
{
var builder = new ContainerBuilder();
builder.Register<IDo, Do>().ControlledBy<ThreadSingletonLifecycle>();
var container = builder.Build();
WeakReference obj = null; ;
Action action = () =>
{
var o = container.Resolve<IDo>();
obj = new WeakReference(o);
};
var thread = new Thread(new ThreadStart(action));
thread.Start();
thread.Join();
Assert.IsTrue(obj.IsAlive);
thread = null;
GC.Collect(2);
Assert.IsFalse(obj.IsAlive, "Objekt sollte nicht mehr existieren");
}
## interfaces
public interface IDo{}
public class Do : IDo{}