Вопрос

Позвольте мне начать с показывания вам моего кода до сих пор:

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

Итак, когда я пытаюсь скомпилировать этот код, я получаю ошибки CS0103 для Preanswer и отвечаю в методе «приглашение».

Это приводит к 3 вопросам:

  • Что именно мне нужно сделать, чтобы сделать Preanswer и ответить доступным для метода «быстрого»?

  • Я правильно добавил 1 в переменную оценку?

  • Как я могу завершить ветку, если он работает? (В этом случае поток "Ask" не закончится, пока не напечатает ответ.)

Пожалуйста, просто скажите мне, что изменить. Я не знаю слов кодирования и терминологии, потому что я только начал несколько недель назад. Пожалуйста, постарайтесь быть максимально ясным.

Это было полезно?

Решение

      static string preanswer;
      static decimal answer = 0;

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

и т.п.

Другие советы

Чтобы дождаться потока, используйте join () ... это скажет потоке, что функция вызывает, чтобы ждать потока, пока он не соединится:

ask.Join(int);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top