Size: a a a

var chat = new Chat();

2020 February 12

ДБ

Денис Бобраницкий in var chat = new Chat();
Ну так каждый поток блочить)
источник

vl

vova lantsov in var chat = new Chat();
Я бы использовал SemaphoreSlim размером в 30, и таймер который каждую секунду делает Release всех 30
источник

OP

Olexiy Palindromer in var chat = new Chat();
vova lantsov
Не более 30 в секунду или 30 одновременно?
Можна і одночасно. Головне забезпечити, щоб упродовж будь-якого часового відрізку довжиною в секунду не виконувалося більше, ніж 30 завдань.
источник

vl

vova lantsov in var chat = new Chat();
new SemaphoreSlim(30)

SemaphoreSlim.WaitOne() – пытается взять 1 из 30

SemaphoreSlim.Release(30) – освобождает все 30, чтобы вызова WaitOne дальше могли брать.

Пока использовано 30 из 30, WaitOne будет блокировать поток
источник

vl

vova lantsov in var chat = new Chat();
Единственное, нужно проверить, можно ли вызвать Release(30), если использовано только 15 из 30
источник

YV

Yura Vshchnk in var chat = new Chat();
vova lantsov
new SemaphoreSlim(30)

SemaphoreSlim.WaitOne() – пытается взять 1 из 30

SemaphoreSlim.Release(30) – освобождает все 30, чтобы вызова WaitOne дальше могли брать.

Пока использовано 30 из 30, WaitOne будет блокировать поток
так не интересно, а ну давай, что бы по промежутку)
источник

vl

vova lantsov in var chat = new Chat();
Yura Vshchnk
так не интересно, а ну давай, что бы по промежутку)
С таймером типо?
источник

YV

Yura Vshchnk in var chat = new Chat();
vova lantsov
С таймером типо?
ага. Да, ну вообще мне просто показалось что смысл задания именно в этом исходя из того, как он написал
источник

YV

Yura Vshchnk in var chat = new Chat();
т.к тут не "без разницы", а совсем другой код
источник

ДБ

Денис Бобраницкий in var chat = new Chat();
Почему со sleep нельзя?
источник

vl

vova lantsov in var chat = new Chat();
Денис Бобраницкий
Почему со sleep нельзя?
Он не гарантирует что максимум 30
источник

vl

vova lantsov in var chat = new Chat();
Он просто замораживает поток
источник

vl

vova lantsov in var chat = new Chat();
Ну поспят все потоки секунду, а потом 40 шт одновременно продолжат работу и всё
источник

ДБ

Денис Бобраницкий in var chat = new Chat();
Каждый поток делает 30 заданий в цикле
Цикл прошел и ставим слип
источник

YV

Yura Vshchnk in var chat = new Chat();
Olexiy Palindromer
Можна і одночасно. Головне забезпечити, щоб упродовж будь-якого часового відрізку довжиною в секунду не виконувалося більше, ніж 30 завдань.
источник

vl

vova lantsov in var chat = new Chat();
Денис Бобраницкий
Каждый поток делает 30 заданий в цикле
Цикл прошел и ставим слип
Это ты уже придумал
источник

YV

Yura Vshchnk in var chat = new Chat();
можешь глянуть поиском слово timeout на странице
источник

vl

vova lantsov in var chat = new Chat();
Не каждый поток 30 заданий, а 30 заданий на все потоки
источник

ДБ

Денис Бобраницкий in var chat = new Chat();
Аааа
источник

ДБ

Денис Бобраницкий in var chat = new Chat();
Я чет думал каждый поток 30 раз в секуду)
источник