public void BuilderConcurrentUse()
{
var builder = new ToStringBuilder<C>()
.Include(c => c.Int)
.Compile();
Action task = () =>
{
var target = new C();
for (int i = 0; i < 10000; i++)
{
target.Int = i;
var result = builder.Stringify(target);
Assert.That(result, Is.EqualTo("C{Int:" + i + "}"));
}
};
var taskA = Task.Factory.StartNew(task);
var taskB = Task.Factory.StartNew(task);
var taskC = Task.Factory.StartNew(task);
Task.WaitAll(taskA, taskB, taskC);
}