void Run( object state )
{
Random r = new Random();
var a = (Action<RunContext, IActivityMonitor,Random>)state;
IActivityMonitor m = new ActivityMonitor( false );
GrandOutput.Register( m );
Barrier.SignalAndWait();
for( int i = 0; i < LoopCount; ++i )
{
a( this, m, r );
}
Barrier.SignalAndWait();
}