Here is a quotation from the Concepts document - the "Best Practices" section:
13.6 Use multiple-operand methods instead of looping
Due to way OPC internally works, it is significantly more efficient to perform more operations at once. Whenever your application logic allows it, use methods with the word Multiple in their name, i.e. methods that work on multiple elements (such as OPC items) at once, and try to group together a bigger number of operands. This approach gives much better performance.
And here is a code example (included with the product, under UADocExample project):
// This example shows how to read the Value attributes of 3 different nodes at once. Using the same method, it is also possible
// to read multiple attributes of the same node.
using OpcLabs.EasyOpc.UA;
using System;
namespace UADocExamples
{
namespace _EasyUAClient
{
class ReadMultipleValues
{
public static void Main()
{
// Instantiate the client object
var easyUAClient = new EasyUAClient();
// Obtain values. By default, the Value attributes of the nodes will be read.
ValueResult[] valueResultArray = easyUAClient.ReadMultipleValues(new[]
{
new UAReadArguments("http://localhost:51211/UA/SampleServer", "nsu=http://test.org/UA/Data/;i=10845"),
new UAReadArguments("http://localhost:51211/UA/SampleServer", "nsu=http://test.org/UA/Data/;i=10853"),
new UAReadArguments("http://localhost:51211/UA/SampleServer", "nsu=http://test.org/UA/Data/;i=10855")
});
// Display results
foreach (ValueResult valueResult in valueResultArray)
Console.WriteLine("Value: {0}", valueResult.Value);
// Example output:
//
//Value: 8
//Value: -8.06803E+21
//Value: Strawberry Pig Banana Snake Mango Purple Grape Monkey Purple? Blueberry Lemon^
}
}
}
}
Best regards