Example #1
0
        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";
            }
        }
Example #2
0
		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";
			}
		}
Example #3
0
		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");
		}