|
|
|
BlockingCollection + Dictionary. Есть ?
|
|||
|---|---|---|---|
|
#18+
Ищу структуру для хранения данных. Не хочется писать свой велосипед :) Нечто похожее на BlockingCollection + Dictionary. BlockingCollection блокирует при попытке получить данные, если в списке ничего нет - но мне нужно, чтобы это происходило по Ключу. Т.е. несколько потоков ждут данные для себя. Данные должны упасть в некий общий список. Каждый поток проверяет наличие определенного ключа.Это Dictionary. Но также, хотелось бы, чтобы не было бессмысленных Sleep(50) в ожидании того, как придут данные. Хотелось бы блокировать поток на время ожидания, чтобы он не шелестел зря винчестером. Это BlockingCollection. Встречали ли вы такую реализацию ? гуглинг вывел на похожий вопрос http://stackoverflow.com/questions/10736209/how-to-wrap-concurrentdictionary-in-blockingcollection Но, там предлагается таки писать свой велосипед. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 20:08:57 |
|
||
|
BlockingCollection + Dictionary. Есть ?
|
|||
|---|---|---|---|
|
#18+
MsSql_Study, Код: c# 1. А не лучше ли запускать потоки, если ключ пришел? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2014, 21:06:14 |
|
||
|
BlockingCollection + Dictionary. Есть ?
|
|||
|---|---|---|---|
|
#18+
LelouchА не лучше ли запускать потоки, если ключ пришел? К сожалению так просто не получится ) Потоки друг о друге ничего не знают. Первые ставят задачу, идентифицируя их уникальным ID. Вторые получают задачи, но от третьих потоков :) Первый и вторые никак не связанные и друг друга не знаю. Я решил, что самым простым вариантом будет глобальный статический Dictionary - где будет идентификатор работы и результат. Единственно хотелось лишь избежать, чтобы первые потоки не висели в бесконечном цикле по 100 мс, проверяя "ну когда там будет ответ ?". Хотелось блокировки как в BlockingCollection. Ладно. Сделаю какой-нибудь велосипед. будет Dictionary <Key, BlockingCollection>. Все желаюшие будут получать по ключу блокирующую коллекцию, и уже висеть на ней сколько хотят :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2014, 16:09:52 |
|
||
|
|

start [/forum/topic.php?fid=20&fpage=127&tid=1403224]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
78ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
38ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 394ms |

| 0 / 0 |
