Название варианта использования: начать моделирование самолета
Область применения: Симулятор полета самолета
Уровень: Цель пользователя
Основной актер: Пользователь
- Пользователь запускает симулятор самолета
- Спросите пользователя о максимальной высоте (потолок)
- Запросите минимальную высоту (этаж)
- Симулятор самолета начинается с позиции в воздухе, без взлета или посадки
- Самолет поднимается на максимальную высоту
- Самолет снижается до минимальной высоты
- Повторяйте шаги 5 и 6, пока пользователь не закончит моделирование
Вот мой вопрос. В .NET какой таймер лучше всего подходит для класса Airplane, это должен быть таймер Windows Forms, серверный таймер или таймер потоков? Я пытаюсь заставить самолет подниматься / опускаться со скоростью, определяемой интервалом таймера. Надеюсь, что это имеет смысл.
Мне нужно кое-что прояснить, пожалуйста, помогите! Вот мой класс
с использованием системы;
использование System.Timers;
пространство имен ConsoleApplication1
{
class Airplane
{
public Airplane()
{
_currentAltitude = 0;
Timer _timer = new Timer();
_timer.Start();
Console.WriteLine("airplane started");
Console.ReadKey();
}
public const int MAXALLOWABLEHEIGHT = 30000;
public const int MINALLOWABLEHEIGHT = 15000;
private int _currentAltitude;
public int CurrentAltitude
{
get
{
return _currentAltitude;
}
set
{
_currentAltitude = value;
}
}
private bool airplaneIsDead = false;
// Define the delegate types
public delegate void GoneTooHigh(string msg);
public delegate void GoneTooLow(string msg);
// Define member variables of the above delegate types
private GoneTooHigh MaxHeightViolationList;
private GoneTooLow MinHeightVioloationList;
// Add members to the invocation lists using helper methods
public void OnGoneTooHigh(GoneTooHigh clientMethod)
{
MaxHeightViolationList = clientMethod;
}
public void OnGoneTooLow(GoneTooLow clientMethod)
{
MinHeightVioloationList = clientMethod;
}
void _timer_Elapsed(object sender, ElapsedEventArgs e)
{
if (_currentAltitude < MAXALLOWABLEHEIGHT)
{
_currentAltitude++;
}
else
{
_currentAltitude--;
}
}
}
}