Question

Permettez-moi de commencer par vous montrer mon code à ce jour:

using System;
using System.Threading;
class MathQuiz
{
  static void Main() 
  {
   int score = 0;
   string preanswer;
   decimal answer = 0;
   Console.WriteLine("Welcome to Project5, a MathQuiz project.");
   Console.WriteLine("You will be asked 10 questions, and will have 30 seconds to read and answer each one.");
   Console.WriteLine("Press any key to begin.");
   Console.ReadKey(true);
   Console.WriteLine("What is 2 + 2?");
    Thread ask = new Thread (new ThreadStart (MathQuiz.prompt));
    ask.Start();
    Thread.Sleep(3000);
    //This is where I want to end the thread if it isn't already done.
    if (answer == 4)
    {
     score = score+1; //Here's where I don't know if my adding is correct.
    }
    Console.WriteLine("Press any key to move on to the next question!");
    Console.ReadKey(true);
  }

  static void prompt()
  {
   preanswer = (Console.ReadLine());
   if (!decimal.TryParse(preanswer, out answer))
  {
   Console.WriteLine("That wasn't even a number or decimal!");
  }
   else
       {
     answer = decimal.Parse(preanswer);
     }
  }
}

Alors, quand je tente de compiler ce code, je reçois CS0103 erreurs pour preanswer et réponse dans la méthode « rapide ».

Cela conduit à 3 questions:

  • Qu'est-ce que EXACTEMENT je dois faire pour preanswer et répondre accessible à la méthode "rapide"?

  • Ai-je ajouter 1 sur la variable score correctement?

  • Comment puis-je mettre fin à un fil si elle est en cours d'exécution? (Dans ce cas, le fil « demander » ne se terminerait pas jusqu'à ce qu'ils tapés une réponse.)

S'il vous plaît me dire ce qu'il faut changer. Je ne sais pas les mots de codage et de la terminologie parce que je viens de commencer il y a quelques semaines. S'il vous plaît essayer d'être aussi clair que possible.

Était-ce utile?

La solution

      static string preanswer;
      static decimal answer = 0;

      static void Main() 
      {
       int score = 0;
       //string preanswer;
       //decimal answer = 0;
...

etc.

Autres conseils

Pour attendre le fil, utilisez join () ... Ceci va dire le fil qui la fonction est appelée à attendre le fil jusqu'à ce qu'elle rejoigne en arrière:

ask.Join(int);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top