- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
private void StatusMsg(string message, int delay = 1000)
{
lock (_msgQueue)
{
if (_msgQueue.ContainsKey(message))
{
int i = 1;
message = String.Format("{0} {1}", message, i);
while (_msgQueue.ContainsKey(message))
{
message = String.Format("{0} {1}", message.Substring(0, message.LastIndexOf(' ')), i++);
}
}
_msgQueue.Add(message, delay);
}
}
Очередь в кавычках, ибо я никак не ожидал наличия у очереди метода ContainsKey.
Но Тришка не дурак, он всё залочит чтоб было на верняк.
> Чтож вы все так артикли не любите
Проблема в том что английский не выдает ошибок или предупреждений, когда пишут без артикля.
И только присутствие grammar-nazi в треде включает strict mode.
DSL модем с прошивкой на хаскеле?
> Проблема в том что английский не выдает ошибок или предупреждений, когда пишут без артикля.
Еще как выдает: http://govnokod.ru/12776#comment172621, http://govnokod.ru/12776#comment172631
It's a priority queue?
No. You can specify custom delay if you want.
Насколько я знаю и как показывает вышеприведенный код, containsKey возвращает bool, что приводит к вечному циклу. Разве нет? Или в другом потоке коллекция может изменится и цикл завершится?
Господь всемогущий за что?
PS
Относительно тс, хочу сказать, что встречал таких "начальников". И судя по тому как пришлось работать, какие задачи ставились, то лучше бы я сразу уволился.
А конкретно этому братцу, лучше лет так 5 не писать ничего сложнее университетских лабораторных работ.
message же меняется на каждой итерации, с чего вдруг _msgQueue начнёт всегда возвращать true?
А что вообще тогда тут происходит?
Походу на каждое сообщение созданное и добавленное в эту "очередь обработки" создается строка содержащее текст сообщения и кол-во таких сообщений в "очереди обработки".