Я сейчас изучаю проект моделирования трафика. Однако у меня проблема с приостановкой моделирования. Каждый автомобиль рассматривается как нить в моем приложении. Когда выполняется симуляция (Автомобили на перемещение сетки) Я хочу приостановить его.Как приостановить поток от изменения данных и вернуться на C#?
Thread.suspend()
метод не работает, так как я должен остановить поток от изменения данных.
Скажем, если есть автомобиль на дороге, и я нажимаю на кнопку паузы, то автомобиль должен оставаться там, и когда я нажимаю кнопку запуска он должен быть в состоянии возобновить. Я не могу заставить потоки спать напрямую, так как он будет блокировать UI
.
Любые идеи?
Заранее спасибо.
_I не может заставить потоки спать напрямую, так как он блокирует UI_. Вы используете отдельные рабочие потоки для автомобилей. Почему приостановление рабочего потока блокирует пользовательский интерфейс, который работает в основном потоке? –
На самом деле, это довольно странно, когда я использую myThread.suspend(); он не блокирует ui; однако, когда я хочу, чтобы он спал в течение определенного времени с помощью метода thread.sleep(), ui блокируется. – Serhat
thread.sleep() заставляет текущий поток спать в течение определенного времени. Если вы вызываете это в ответ на нажатие вашей кнопки, тогда поток пользовательского интерфейса не будет отвечать, поскольку он спящий для этой продолжительности. – tinman