Im not terribly clear on what you are trying to accomplish. I think what you are asking is what is the best way to do the same operation to 170 different devices.
You should look at threading/Tasks in .net.
var tasks = new list<task>();
var deviceEndpoints = new List<string>();
foreach (var hostname in deviceEndpoints)
{
var dhostname = hostname;
tasks.add(task.factory.startnew(() =>
{
}));
}
task.waitall(tasks.toarray());
Using the above code I was able to take a process that took close to 30-40 minutes of sequential procesisng down to 2 minutes using the async code above.
You can read more about tasks and multi threading here:
C# - Multithreading[
^]
c# multithreading - Google Search[
^]
C# Tasks - Google Search[
^]
Task Class (System.Threading.Tasks)[
^]