A.,
Yes, the [QuickOPC] objects should work with multi-threading. Of course I cannot rule a possible bug somewhere; version 5.0x is certainly too old to support.
I will have to know more about the requirements of the application in order to suggest the best performing approach. But, far too often, I can see sub-optimal solutions that develop similarly to this:
1. The customer wants to download a recipe to the technology, based e.g. on a database contents.
2. The read the data from table row by row, and call WriteItemValue
3. They realize that it is too slow.
4. They decide to speed it up by using multiple threads. They write a complicated code that spins off multiple threads, makes the writes, and synchronizes itself. The code is buggy, and due to so much multi-threading, it also sometimes reveal hidden bugs in the component itself.
The proper solution in this case is different – simply call WriteMultipleItemValues with an array that spans through the servers. The component will parallelize it INTERNALLY, and much better than any external code can do. In addition, the code will be much shorter and safer.
Of course I cannot know whether the customer’s situation is alike, but you get the idea – multi-threading is possible, but it is best avoided if method with “Multiple” in their name can be employed.
Best regards