Мне нравится простота методов расширения Parallel.For и Parallel.ForEach в TPL. Мне было интересно, есть ли способ воспользоваться чем-то подобным или даже с немного более продвинутыми задачами.
Ниже приведено типичное использование для SqlDataReader, и мне было интересно, возможно ли это, и если да, то как заменить цикл while на что-то в TPL. Поскольку читатель не может предоставить фиксированное количество итераций, метод "Расширение" невозможен, что позволяет справиться с задачами, которые я собирал. Я надеялся, что кто-то, возможно, уже справился с этим, и разработал некоторые из них, и не надейся на ADO.net.
using (SqlConnection conn = new SqlConnection("myConnString"))
using (SqlCommand comm = new SqlCommand("myQuery", conn))
{
conn.Open();
SqlDataReader reader = comm.ExecuteReader();
if (reader.HasRows)
{
while (reader.Read())
{
// Do something with Reader
}
}
}