예제 #1
0
        private void StartSolver(Func <string, string> task, string inputData, ResultView rv, TimeMeasure tm)
        {
            try
            {
                tm.Register(rv);
                rv.Value        = "Running";
                rv.RunningState = ERunningState.Running;
                rv.Value        = task(inputData);
                tm.Unregister(rv);

                if (string.IsNullOrEmpty(rv.Value))
                {
                    rv.Value = "No result";
                }
                rv.RunningState = ERunningState.Finished;
            }
            catch (NotImplementedException)
            {
                rv.Value = "Task not Implemented";
                tm.Unregister(rv);
                rv.RunningState = ERunningState.NotImplemented;
            }
            catch (Exception ex)
            {
                rv.Value = ex.ToString();
                tm.Unregister(rv);
                rv.RunningState = ERunningState.Exception;
            }
            tm.TaskFinished();
        }
예제 #2
0
 private void StartTests2(IAdventSolver adventSolver, Data d, TimeMeasure tm)
 {
     Task.Factory.StartNew(() =>
     {
         var result = d.Results.Where(x => x.TaskName == adventSolver.SolverName).FirstOrDefault();
         try
         {
             if (result != null)
             {
                 tm.Register(result.ResultTest2);
                 result.ResultTest2.Value = string.Join("\n", adventSolver.RunTests2());
                 tm.Unregister(result.ResultTest2);
             }
         }
         catch (NotImplementedException)
         {
             result.ResultTest2.Value = "Task not Implemented";
             tm.Unregister(result.ResultTest2);
         }
         catch (Exception ex)
         {
             result.ResultTest2.Value = ex.ToString();
             tm.Unregister(result.ResultTest2);
         }
         tm.TaskFinished();
     });
 }