private void worker_DoWork(object sender, DoWorkEventArgs e) { GenerateMandelbrotTask task = e.Argument as GenerateMandelbrotTask; if (task == null) { return; } var generatorStopwatch = Stopwatch.StartNew(); var completed = new ManualResetEvent(false); task.WhenCompleted(x => completed.Set()); var distributedTaskController = new DistributedTaskController <GenerateMandelbrotTask, GenerateRow, RowGenerated>(_bus, ObjectFactory.GetInstance <IEndpointFactory>(), task); distributedTaskController.Start(); if (completed.WaitOne(TimeSpan.FromMinutes(1))) { generatorStopwatch.Stop(); _result = string.Format("Width: {0} Height: {1} Elapsed Time: {2}", task.Width, task.Height, generatorStopwatch.Elapsed); _task = task; } else { _result = "Timeout waiting for task to complete"; } }
private void worker_DoWork(object sender, DoWorkEventArgs e) { GenerateMandelbrotTask task = e.Argument as GenerateMandelbrotTask; if (task == null) return; var generatorStopwatch = Stopwatch.StartNew(); var completed = new ManualResetEvent(false); task.WhenCompleted(x => completed.Set()); var distributedTaskController = new DistributedTaskController<GenerateMandelbrotTask, GenerateRow, RowGenerated>(_bus, ObjectFactory.GetInstance<IEndpointFactory>(), task); distributedTaskController.Start(); if (completed.WaitOne(TimeSpan.FromMinutes(1))) { generatorStopwatch.Stop(); _result = string.Format("Width: {0} Height: {1} Elapsed Time: {2}", task.Width, task.Height, generatorStopwatch.Elapsed); _task = task; } else { _result = "Timeout waiting for task to complete"; } }
public void I_want_to_be_able_to_define_a_distributed_task_and_have_it_processed() { RemoteBus.Subscribe<SubTaskWorker<ExceptionalWorker, FactorLongNumber, LongNumberFactored>>(); var distributedTaskController = new DistributedTaskController<FactorLongNumbersTask, FactorLongNumber, LongNumberFactored>(RemoteBus, ObjectBuilder.GetInstance<IEndpointFactory>(), _factorLongNumbers); distributedTaskController.Start(); Assert.That(_fault.WaitOne(TimeSpan.FromSeconds(10), true), Is.True, "Timeout waiting for distributed task to fail"); Assert.That(_complete.WaitOne(TimeSpan.Zero, false), Is.False, "Task should not have completed"); }