Member 7679800 Ответов: 2

Как смоделировать очередь кругов


Привет
У меня возникла проблема при моделировании очереди с одним сервером
Мне нужно сделать очередь из кругов, которые прибывают в соответствии со скоростью прибытия
затем круги будут перемещаться по одному на сервер на время обслуживания и исчезать я не знаю как это сделать
Может ли кто-нибудь помочь, даже давая подсказки
Я начал с того, что сделал несколько кругов с помощью цикла for, но как я могу использовать таймер для каждого круга, чтобы двигаться в соответствии со скоростью прибытия
и как сделать так, чтобы круги остановились на сервере??

Спасибо

Что я уже пробовал:

I started by making multiple circles using a for loop

2 Ответов

Рейтинг:
2

Kornfeld Eliyahu Peter

.NET предлагает предварительно созданную очередь FIFO... Класс Очереди (System.Коллекции)[^]


Member 7679800

Если я определю новую очередь
Queue q = новая очередь();
вопрос.Поставить в очередь(??);
Нужно ли мне определить класс под названием circle и передать его в качестве объекта
Как я могу войти в круг в очереди ??

Kornfeld Eliyahu Peter

Да. У вас должен быть класс, представляющий ваш круг, и вы можете использовать очередь для его хранения...
открытый класс кружок {};
Circle oCirc = новый круг();
Queue<circle> oQueue = новая очередь<circle>();
oqueue.Помещать(oCircle);

Member 7679800

Спасибо я попробую это сделать

Member 7679800

У меня есть вопрос о таймере, нужен ли мне таймер для перемещения каждого круга или один таймер для всех, потому что когда я пытаюсь двигаться с помощью таймера, все круги движутся??

Kornfeld Eliyahu Peter

Почему таймер - это два отдельных процесса/потока...
Один - принимать входящие круги и проталкивать их в очередь
Два - вытаскивать круги один за другим...

Member 7679800

private void Form1_Paint(отправитель объекта, PaintEventArgs e)
{
Графика g = e.графика;
for (int i = 0; i <= 5; i++)
{
эллипс = новый Миеллипс(wid, y);
эллипсы.Enqueue(эллипс);
эллипс.Дро(Ж, Ш, Г);
wid += 20;
}

Я сделал этот код в цикле for, потому что у меня есть несколько клиентов, но как сделать так, чтобы каждый круг появлялся после определенного времени прибытия
и как удалить очередь из очереди каждый раз, когда я использую dequeue, он перемещает круг в позицию, но не удаляет его из очереди

Member 7679800

Мне очень жаль ,но я не получил ту часть нити, как это сделать.

Рейтинг:
1

Patrice T

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


BillWoodruff

Проголосовал #1: это не решение, а вопрос для пользователя, и должен быть комментарий.

Patrice T

Привет Билл,
Мне не нравится 1, но я счастлив от сообщения, по крайней мере, я могу понять причину 1.
Я бы сказал, что это скорее совет, чем вопрос.
Есть ли у вас знания о "очереди кругов"?

Member 7679800

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