|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaГде там ThreadPool.RegisterWaitForSingleObject ? Из рефлектора: Код: 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. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 13:18 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Лёня, задам те вопрос как человеку, недавно вышедшему из отпуска со свежей, как говорится, головой на плечах :) Не кажется ли, что тарахтушка Сева опять обделалась? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 13:26 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
столько поноса в 1 теме из за какой то много-поточности, для которой в dotNet есть 100500 классов, начиная от Thread и заканчивая самыми изощренными... ЗАЧЕМ? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 13:29 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУЛёня, задам те вопрос как человеку, недавно вышедшему из отпуска со свежей, как говорится, головой на плечах :) Не кажется ли, что тарахтушка Сева опять обделалась? "Трудно быть вежливым если ты прав" (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 13:30 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Roman Mejtes, если МСУ и SeVa в одном топике пишут, то последний превращается в срач автоматически. Забей ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 13:31 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Алексей КМСУЛёня, задам те вопрос как человеку, недавно вышедшему из отпуска со свежей, как говорится, головой на плечах :) Не кажется ли, что тарахтушка Сева опять обделалась? "Трудно быть вежливым если ты прав" (с) Вежливый ты мой. Ты не там копаешь. Теперь посмотри на TaskFactory.ContinueWhenAll(tasks, tt => /* Готово */) в своем коде. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 14:32 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Сева опять обкакалсяМСУSeVaпропущено... Вот и Гнидка пожаловала с очередной порцией слизи. Нашел фоновые потоки для тасков? Извратность твоих хаотичных мыслишек в впереди планеты всей. Кроме тебя мало бы кто до этого додумался Твоему гнустному умишке с гнилыми потрохами мозгов я подготовил примерчик для первоклашек. Осилишь? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Что скажешь, марамойка, почему я получу разные идентификаторы тредов? SeVa, марамойка ты наша форумная, есть что сказать по поводу "извратности моих хаотичных мыслишек"? Опять опкакалсо, неуч? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 14:48 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУ+ Сева опять обкакалсяМСУпропущено... Твоему гнустному умишке с гнилыми потрохами мозгов я подготовил примерчик для первоклашек. Осилишь? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Что скажешь, марамойка, почему я получу разные идентификаторы тредов? SeVa, марамойка ты наша форумная, есть что сказать по поводу "извратности моих хаотичных мыслишек"? Опять опкакалсо, неуч? :) Глупая, бездумная обезьянка, а что доказывает твой тупой тест ни о чем? Продолжаешь гадить себе на голову? Попроси взрослых написать правильный тест. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 15:11 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaТеперь посмотри на TaskFactory.ContinueWhenAll(tasks, tt => /* Готово */) в своем коде.До этого речь шла про FromAsync . Ты уж определись. А то так и будем весь System.Threading.Task сюда из рефлектора постить. Впрочем - давай. Теперь твоя очередь. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 15:11 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaМСУ++ Сева опять обкакалсяпропущено... SeVa, марамойка ты наша форумная, есть что сказать по поводу "извратности моих хаотичных мыслишек"? Опять опкакалсо, неуч? :) Глупая, бездумная обезьянка, а что доказывает твой тупой тест ни о чем? Продолжаешь гадить себе на голову? Попроси взрослых написать правильный тест. Этот тест в очередной раз доказывает, что ты унылая кодо-кухарка со всяческим отсутствием интеллекта. Заруби себе топором на своем тупорылом мозге, асинк авэйт - это синтаксический сахар, не более того. Очень замороченный в реализации, но таки сахар, который поет свои песни в отдельном потоке, играя на бубенцах мелодичные ритмы для так простофиль и обормотов-двоешников типа тебя. Сегодня опять двойка, вон из класса. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 15:20 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУ асинк авэйт - это синтаксический сахар, не более того. Очень замороченный в реализации, но таки сахар, который поет свои песни в отдельном потоке но люди читают это и видят совершенно другое. автор http://msdn.microsoft.com/ru-ru/magazine/hh456403.aspx асинхронные методы не планируют новые потоки — они позволяют выполнять вычисления в существующих потоках; как тут не получить разрыв шаблона. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 15:42 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
beg-in-erкак тут не получить разрыв шаблона.Достаточно знать про ThreadPool. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 15:51 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Алексей КSeVaТеперь посмотри на TaskFactory.ContinueWhenAll(tasks, tt => /* Готово */) в своем коде.До этого речь шла про FromAsync . Ты уж определись. А то так и будем весь System.Threading.Task сюда из рефлектора постить. Впрочем - давай. Теперь твоя очередь. :-) Реализации FromAsync я и без тебя видел, они были еще в Rx задолго до тасков. Речь идет о том, что async\await - конечный автомат, который не блокирует поток, как это делается в Wait'ax для тасков или Thread'ax. Это совсем новая модель и совсем другое кино. Вот правильный вариант теста, который постил наш дебиленок. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
Results Код: c# 1. 2. 3. 4.
Те первый wait в Main блокирующий и выполнение идет в одном потоке, а c await Этого не происходит ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 15:55 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
beg-in-erМСУ асинк авэйт - это синтаксический сахар, не более того. Очень замороченный в реализации, но таки сахар, который поет свои песни в отдельном потоке но люди читают это и видят совершенно другое. автор http://msdn.microsoft.com/ru-ru/magazine/hh456403.aspx асинхронные методы не планируют новые потоки — они позволяют выполнять вычисления в существующих потоках; как тут не получить разрыв шаблона. beg-in-er, не трать время зря, если этому му**ку что-то втемяшилось, то это уже не вышибить. Он любит гадить себе на голову, при этом считает, что выглядит очень красиво и умно ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 15:58 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
beg-in-erкак тут не получить разрыв шаблона. ...Другие контексты планирования являются многопоточными; в частности, стандартный пул потоков представлен одним контекстом планирования. Когда в нем планируется новая работа, она может быть выполнена в любом потоке из пула. Таким образом, асинхронный метод, начавший работать в пуле потоков, там же ее и продолжит, хотя при этом не исключена его «переброска» между разными потоками. ...На практике единой концепции для контекста планирования нет. Грубо говоря, SynchronizationContext потока действует как его контекст планирования. Поэтому, если у потока есть один из SynchronizationContext (существующая концепция, которая может быть реализована пользователем), он и будет использоваться. А если нет, тогда применяется TaskScheduler потока (аналогичная концепция, введенная TPL). Если у него нет ни того, ни другого, будет задействован TaskScheduler по умолчанию — он планирует возобновления в стандартном пуле потоков. Но всё это теория от "менеджера программ в группе Microsoft C# and Visual Basic Language", которому наскоряк набили текст такие двоешники как Сева. Всегда поднимается новый поток, это наглядно иллюстрирует мой код. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:02 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
МСУbeg-in-erкак тут не получить разрыв шаблона. ...Другие контексты планирования являются многопоточными; в частности, стандартный пул потоков представлен одним контекстом планирования. Когда в нем планируется новая работа, она может быть выполнена в любом потоке из пула. Таким образом, асинхронный метод, начавший работать в пуле потоков, там же ее и продолжит, хотя при этом не исключена его «переброска» между разными потоками. ...На практике единой концепции для контекста планирования нет. Грубо говоря, SynchronizationContext потока действует как его контекст планирования. Поэтому, если у потока есть один из SynchronizationContext (существующая концепция, которая может быть реализована пользователем), он и будет использоваться. А если нет, тогда применяется TaskScheduler потока (аналогичная концепция, введенная TPL). Если у него нет ни того, ни другого, будет задействован TaskScheduler по умолчанию — он планирует возобновления в стандартном пуле потоков. Но всё это теория от "менеджера программ в группе Microsoft C# and Visual Basic Language", которому наскоряк набили текст такие двоешники как Сева. Всегда поднимается новый поток, это наглядно иллюстрирует мой код. му**к, это Net 4.0 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:05 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaму**к, это Net 4.0 Дибилоид, async await появился в 4.5, в статье как-раз приводятся примеры: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Опять кухарка обделалась. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:10 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVa это Net 4.0 http://msdn.microsoft.com/ru-ru/magazine/hh456403.aspx ващето это из 13646380 SeVa Ничего особо сложного ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:15 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaРеализации FromAsync я и без тебя видел, они были еще в Rx задолго до тасков. Речь идет о том, что async\await - конечный автомат, который не блокирует поток, как это делается в Wait'ax для тасков или Thread'ax. Это совсем новая модель и совсем другое кино.У нас задача про "запрос в базу". Значит в первую очередь задействован IO Completion Port и его пул потоков (не путать с ThreadPool class). А всё остальное (Task, кодогенерация async/await и т. п) это удобные бантики, мало влияющие на производительность в данном случае. Пусть даже в новой асинхронной модели есть экономия на WaitHandle-ах, но в данном случае это "экономия на спичках". ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:15 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaРечь идет о том, что async\await - конечный автомат, который не блокирует поток, как это делается в Wait'ax для тасков или Thread'ax.И ещё раз, где в примере с ContinueWhenAll блокируется поток?! Зануда... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:19 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
beg-in-erSeVa это Net 4.0 http://msdn.microsoft.com/ru-ru/magazine/hh456403.aspx ващето это из 13646380 SeVa Ничего особо сложного Не обращай внимание на эту придурь :) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:19 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
Как-то читал про реализацию async/await. Там кодогенерировались Task.ContinueWith. Видимо, с тех пор что-то поменялось... ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:21 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
[quot SeVa] Код: sql 1. 2. 3. 4.
а почему FooAfter==10 ??? может быть всё таки разные потоки? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:22 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
SeVaResults Код: c# 1. 2. 3. 4.
Те первый wait в Main блокирующий и выполнение идет в одном потоке, а c await Этого не происходит Дуралей, это и говорит о том, что асинхронный await выполнился в другом потоке ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:24 |
|
Выборка из базы данных в несколько потоков
|
|||
---|---|---|---|
#18+
beg-in-erа почему FooAfter==10 ??? может быть всё таки разные потоки?МСУэто и говорит о том, что асинхронный await выполнился в другом потоке Неожиданно. А если бы это было WinForms/WPF приложение, поток был бы тот же. Но не повезло. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2012, 16:28 |
|
|
start [/forum/topic.php?fid=20&msg=38083379&tid=1405470]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
70ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 188ms |
0 / 0 |