Я просто ищу, чтобы иметь возможность сортировать результаты BatchedJoinBlock (http://msdn.microsoft.com/en-us/library/hh194683.aspx), чтобы разные результаты разных целей сохранялись вместе. Я объясню! Например, в некоторых псевдо-коде:Использование Orderby on BatchedJoinBlock (Of T1, T2) - поток данных (параллельная библиотека задач)
Dim batchedJoin = New BatchedJoinBlock(Of String, object)(4)
batchedJoin.Target1.Post("String1Target1")
batchedJoin.Target2.Post(CType(BuildIt, StringBuilder1))
batchedJoin.Target1.Post("String1Target2")
batchedJoin.Target2.Post(CType(BuildIt, StringBuilder2))
Dim results = batchedJoin.Receive()
'This sorts one result...
Dim SortByResult = results.Item1.OrderBy(Function(item) item.ToString, New NaturalStringComparer)
В принципе у меня есть строка и объект, переменная SortByResult выше сортирует строки точно так, как я хотел бы их сортировать. Я ищу способ получить объекты, которые были в одном и том же номере индекса в target2, в том же порядке. например если «String1Target1» изменяет порядок, я хотел бы как-то надежно ссылаться на него/вместе с «StringBuilder1». Фактический конечный результат просто должен состоять в том, что объекты (target2) сортируются в порядке, который определяется сортировкой строк (target1). Что-то вроде:
Dim EndResult = results.Item2.OrderBy(strings in target1)
но я с радостью возьму промежуточное решение! Я также пробовал использовать словарь (results.Item2.ToDictionary) со строкой в качестве ключа (что также было бы прекрасным решением), но это немного выше моего ken, используя выражения lamba в соответствующем контексте. Я могу реально сделать это несколькими шагами со списком или чем-то другим, но я пытаюсь получить что-то более эффективное/что-то научиться, и кажется, что есть много вариантов по умолчанию с результатами совместного блока, что я просто не достаточно опытный, чтобы использовать. Заранее благодарим за любую помощь, которую вы можете предоставить!
Почему вы используете 'BatchedJoinBlock' для этого? Разве вы не можете объединить две части данных (возможно, в «Tuple»), а затем использовать обычный «BatchBlock»? – svick
Стоит попробовать! Спасибо за идею. – Finch042
@svick честно работал как шарм. Мне просто нужен был кто-то, чтобы указать на очень очевидное для меня, я думаю. Еще раз спасибо. – Finch042