public void testRecursive(int value) { Question5Logics q5Logics = new Question5Logics(value); if (value == (int)TESTVALUES.TEST1) { Assert.Equal((int)TESTVALUES.ANSWER1, q5Logics.getAnswerFromRecursive()); } else if (value == (int)TESTVALUES.TEST2) { Assert.Equal((int)TESTVALUES.ANSWER2, q5Logics.getAnswerFromRecursive()); } }
public IActionResult Question5AnswerSynchronous(Question5Model q5Model) { DateTime startTime = DateTime.Now; Question5Logics q5Logics = new Question5Logics(q5Model.question); q5Model.question5Results.Add( new Question5Result(Thread.CurrentThread.ManagedThreadId.ToString() , q5Logics.getAnswerFromLoop() , "Loop")); q5Model.question5Results.Add( new Question5Result(Thread.CurrentThread.ManagedThreadId.ToString() , q5Logics.getAnswerFromRecursive() , "Recursive")); DateTime endTime = DateTime.Now; TimeSpan span = endTime - startTime; int ms = (int)span.TotalMilliseconds; q5Model.duration = ms; return(View("Question5", q5Model)); }
public IActionResult Question5AnswerThread(Question5Model q5Model) { DateTime startTime = DateTime.Now; Question5Logics q5Logics = new Question5Logics(q5Model.question); ThreadStart threadLoopDel = delegate { q5Model.question5Results.Add( new Question5Result(Thread.CurrentThread.ManagedThreadId.ToString() , q5Logics.getAnswerFromLoop() , "Loop")); }; Thread threadLoop = new Thread(threadLoopDel); threadLoop.Start(); ThreadStart threadRecursiveDel = delegate { q5Model.question5Results.Add( new Question5Result(Thread.CurrentThread.ManagedThreadId.ToString() , q5Logics.getAnswerFromRecursive() , "Recursive")); }; Thread threadRecursive = new Thread(threadRecursiveDel); threadRecursive.Start(); while (threadRecursive.ThreadState != ThreadState.Stopped || threadLoop.ThreadState != ThreadState.Stopped) { } DateTime endTime = DateTime.Now; TimeSpan span = endTime - startTime; int ms = (int)span.TotalMilliseconds; q5Model.duration = ms; return(View("Question5", q5Model)); }