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(); }
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(); }); }