|
AutoResetEvent vs Monitor
|
|||
---|---|---|---|
#18+
ViPRosэто поле статик - задается при конфигурации это все выглядит как костыли, может лучше бы подошли потокобезопасные очереди. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 15:59 |
|
AutoResetEvent vs Monitor
|
|||
---|---|---|---|
#18+
hVosttViPRos Код: c# 1.
Почему не использовать потокобезопасные коллекции? Так блокировать коллекции не по феншую, да и не блокирует доступ к коллекции. они все потокобезопасные :) но их можно использовать как объект блокировки ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 16:00 |
|
AutoResetEvent vs Monitor
|
|||
---|---|---|---|
#18+
Petro123hVosttпропущено... Почему не использовать потокобезопасные коллекции? Так блокировать коллекции не по феншую, да и не блокирует доступ к коллекции. +1 Тогда и сабж монитор не понадобится) пшел нах ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 16:00 |
|
AutoResetEvent vs Monitor
|
|||
---|---|---|---|
#18+
hVosttViPRosэто поле статик - задается при конфигурации это все выглядит как костыли, может лучше бы подошли потокобезопасные очереди. хотя может это тот случай, когда что-то рабочее за вменяемое время написать -- уже победа. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 16:00 |
|
AutoResetEvent vs Monitor
|
|||
---|---|---|---|
#18+
ViPRosони все потокобезопасные :) но их можно использовать как объект блокировки это только если ты знаешь, что к коллекции надо обращаться только через критическую секцию, так делать не рекомендуется, настоятельно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 16:01 |
|
AutoResetEvent vs Monitor
|
|||
---|---|---|---|
#18+
ViPRos, или ты просто сэкономил на лок-объкете ) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 16:02 |
|
AutoResetEvent vs Monitor
|
|||
---|---|---|---|
#18+
hVostthVosttпропущено... это все выглядит как костыли, может лучше бы подошли потокобезопасные очереди. хотя может это тот случай, когда что-то рабочее за вменяемое время написать -- уже победа. Хвост не горячись - потокобезопасность коллекции делают потокобезопасным только их, а не твой код все коллекции там потокобезопасные (кроме особых случаев - созданы только для лока) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 16:02 |
|
AutoResetEvent vs Monitor
|
|||
---|---|---|---|
#18+
hVosttViPRos, или ты просто сэкономил на лок-объкете ) ну я ж прогер 40 летним стажем :) ячейка память бережет! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 16:03 |
|
AutoResetEvent vs Monitor
|
|||
---|---|---|---|
#18+
ViPRosЭтих algroup много - lock (algroup) пропускает неоднотипные процессы а если не сделать lock (monLockStru) то все однотипные процессы ломанутся одновременно и будет дедлок Но в коде с эвентами вызов WaitAll() вынесен за блокировку. Если не путаю WaitAll() не блокирует AutoResetEvent, в WinAPI это так, как тут - не знаю. Если так, то у тебя вообще нет блокировок AutoResetEvent. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 16:06 |
|
AutoResetEvent vs Monitor
|
|||
---|---|---|---|
#18+
Dima TViPRosЭтих algroup много - lock (algroup) пропускает неоднотипные процессы а если не сделать lock (monLockStru) то все однотипные процессы ломанутся одновременно и будет дедлок Но в коде с эвентами вызов WaitAll() вынесен за блокировку. Если не путаю WaitAll() не блокирует AutoResetEvent, в WinAPI это так, как тут - не знаю. Если так, то у тебя вообще нет блокировок AutoResetEvent. Ты не внимателен - коллекции areEvents, monEvents локальные ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 16:09 |
|
AutoResetEvent vs Monitor
|
|||
---|---|---|---|
#18+
а блокировка сразу задается в конструкторе ивента ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 16:09 |
|
AutoResetEvent vs Monitor
|
|||
---|---|---|---|
#18+
ViPRos, Как сказал ....."ты злишься, значит неправ))" ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 16:10 |
|
AutoResetEvent vs Monitor
|
|||
---|---|---|---|
#18+
Petro123ViPRos, Как сказал ....."ты злишься, значит неправ))" не я не злюсь, просто мы кои-то веки без тебя тут пару часов по человечески поговорили, а тут ты! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 16:12 |
|
AutoResetEvent vs Monitor
|
|||
---|---|---|---|
#18+
ViPRosТы не внимателен - коллекции areEvents, monEvents локальные Я про lock (algroup). Эвенты ждутся после этого лока, а мониторы внутри. выделил нужные строкиViPRosКод (создание процесса - очень большой), а так начало Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47.
-----------блабла и конец Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Про блокировку AutoResetEvent.WaitAll() ничего не нашел, в хэлпе только про WaitOne() ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 16:17 |
|
AutoResetEvent vs Monitor
|
|||
---|---|---|---|
#18+
ViPRosони все потокобезопасные :) Сожалею, но это не отмаз). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 16:20 |
|
AutoResetEvent vs Monitor
|
|||
---|---|---|---|
#18+
Dima TViPRosТы не внимателен - коллекции areEvents, monEvents локальные Я про lock (algroup). Эвенты ждутся после этого лока, а мониторы внутри. выделил нужные строкиViPRosКод (создание процесса - очень большой), а так начало Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47.
-----------блабла и конец Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Про блокировку AutoResetEvent.WaitAll() ничего не нашел, в хэлпе только про WaitOne() Ну все правильно ==> foreach (var e in monitorEventsObjects) Monitor.Enter(e); установили блокировку (только не для себя, мы не ждем эти события - мы их для других поставили) тут тоже для себя зеленая дорога (сигнал установлен в конструкторе), а после WaitAll двери захлопываются ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 16:26 |
|
AutoResetEvent vs Monitor
|
|||
---|---|---|---|
#18+
System.collections.concurrent. Минимальный лок на минимальное время содердится в коде метода List.Add(Object). А потом уже мониторы, семафоры и блок по логике процессов. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 16:27 |
|
AutoResetEvent vs Monitor
|
|||
---|---|---|---|
#18+
ViPRosНу все правильно ==> foreach (var e in monitorEventsObjects) Monitor.Enter(e); установили блокировку (только не для себя, мы не ждем эти события - мы их для других поставили) тут тоже для себя зеленая дорога (сигнал установлен в конструкторе), а после WaitAll двери захлопываются всё же тут напрашивается rx ) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 16:29 |
|
AutoResetEvent vs Monitor
|
|||
---|---|---|---|
#18+
Petro123ViPRosони все потокобезопасные :) Сожалею, но это не отмаз). му**ло, они все ConcurrentDictionary, Bag, Queue, Satck, ... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 16:30 |
|
AutoResetEvent vs Monitor
|
|||
---|---|---|---|
#18+
hVosttViPRosНу все правильно ==> foreach (var e in monitorEventsObjects) Monitor.Enter(e); установили блокировку (только не для себя, мы не ждем эти события - мы их для других поставили) тут тоже для себя зеленая дорога (сигнал установлен в конструкторе), а после WaitAll двери захлопываются всё же тут напрашивается rx ) RXы внутри точно так же сделаны ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 16:31 |
|
AutoResetEvent vs Monitor
|
|||
---|---|---|---|
#18+
ViPRosRXы внутри точно так же сделаны это верно, но позволяет не городить огороды, и сосредоточиться на главном ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 16:34 |
|
AutoResetEvent vs Monitor
|
|||
---|---|---|---|
#18+
hVosttViPRosRXы внутри точно так же сделаны это верно, но позволяет не городить огороды, и сосредоточиться на главном Хвост!!!!! Я показал 10 строк кода! Какой еще огород!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 16:36 |
|
AutoResetEvent vs Monitor
|
|||
---|---|---|---|
#18+
И тут это самое главное - запустить параллельно те процессы, которые не претендуют на одни и те же ресурсы. Эти 5-10 строк кода полностью решают данную задачу. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 16:38 |
|
AutoResetEvent vs Monitor
|
|||
---|---|---|---|
#18+
ViPRosPetro123пропущено... Сожалею, но это не отмаз). му**ло, они все ConcurrentDictionary, Bag, Queue, Satck, ... Да? У них ConcurrentDictionary появился метод Add(..... Уверен? "Ты материшься значит не прав" ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 16:39 |
|
AutoResetEvent vs Monitor
|
|||
---|---|---|---|
#18+
Petro123ViPRosпропущено... му**ло, они все ConcurrentDictionary, Bag, Queue, Satck, ... Да? У них ConcurrentDictionary появился метод Add(..... Уверен? "Ты материшься значит не прав" Как же ты надоел ViPRoshVosttпропущено... хотя может это тот случай, когда что-то рабочее за вменяемое время написать -- уже победа. Хвост не горячись - потокобезопасность коллекции делают потокобезопасным только их, а не твой код все коллекции там потокобезопасные (кроме особых случаев - созданы только для лока) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.07.2018, 16:45 |
|
|
start [/forum/topic.php?fid=20&msg=39668963&tid=1399306]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 342ms |
total: | 492ms |
0 / 0 |