Parallel.ForEach
От: -rsdn- Беларусь http://dsalodki.wix.com/resume
Дата: 05.03.14 13:04
Оценка:
читаю статью и проверяю
http://rsdn.ru/article/dotnet/Threading_In_C_Sharp_Part_3.xml
Автор(ы): Joseph Albahari
Дата: 28.07.2011
В третьей части статьи рассматривается Parallel LINQ, класс Parallel, конструкции параллелизма задач, параллельные коллекции, а также структуры SpinLock и SpinWait. В статье использован материал из книги Joseph Albahari, Ben Albahari "C# 4.0 in a Nutshell" —  http://oreilly.com/catalog/9780596800963


Parallel.ForEach("Hello, world", (c, state) =>
            {
                if (c == ',')
//                    state.Stop();
                    state.Break();
                else
                {
                    Console.Write(c);
                }
            });


результат Hloelr low

в статье что-то вроде Hlloe

если раскомментить state.Stop(); и убрать Break
loelH

суть в том что должно вывести символы до ','
так понимаю есть описка в статье
Re: Parallel.ForEach
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 05.03.14 13:13
Оценка:
Здравствуйте, -rsdn-, Вы писали:

R>читаю статью и проверяю

R>http://rsdn.ru/article/dotnet/Threading_In_C_Sharp_Part_3.xml
Автор(ы): Joseph Albahari
Дата: 28.07.2011
В третьей части статьи рассматривается Parallel LINQ, класс Parallel, конструкции параллелизма задач, параллельные коллекции, а также структуры SpinLock и SpinWait. В статье использован материал из книги Joseph Albahari, Ben Albahari "C# 4.0 in a Nutshell" —  http://oreilly.com/catalog/9780596800963


R>
R>Parallel.ForEach("Hello, world", (c, state) =>
R>            {
R>                if (c == ',')
R>//                    state.Stop();
R>                    state.Break();
R>                else
R>                {
R>                    Console.Write(c);
R>                }
R>            });
R>


R>результат Hloelr low


R>в статье что-то вроде Hlloe


R>если раскомментить state.Stop(); и убрать Break

R>loelH

R>суть в том что должно вывести символы до ','

R>так понимаю есть описка в статье

Зависит от количества потоков. Часть которых может обрабатывать символы за ",".

Суть вообще то в другом

Однако вызов метода Stop, в отличие от метода Break, приведет к завершению всех потоков сразу же после выполнения текущей итерации. В нашем примере вызов метода Stop приведет к выводу подмножества букв H, e, l, l, и o, если какой-то из потоков будет запаздывать. Вызов метода Stop полезен в тех случаях, когда вы либо нашли то, что искали, либо когда что-то пошло не так и вы не хотите обрабатывать результаты.

и солнце б утром не вставало, когда бы не было меня
Re[2]: Parallel.ForEach
От: -rsdn- Беларусь http://dsalodki.wix.com/resume
Дата: 05.03.14 14:32
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>Здравствуйте, -rsdn-, Вы писали:


S>Зависит от количества потоков. Часть которых может обрабатывать символы за ",".


S>Суть вообще то в другом


S>

S>Однако вызов метода Stop, в отличие от метода Break, приведет к завершению всех потоков сразу же после выполнения текущей итерации. В нашем примере вызов метода Stop приведет к выводу подмножества букв H, e, l, l, и o, если какой-то из потоков будет запаздывать. Вызов метода Stop полезен в тех случаях, когда вы либо нашли то, что искали, либо когда что-то пошло не так и вы не хотите обрабатывать результаты.


Да верно, я не прав несколько
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.