If a class has fields PISDK and Server that are created during the constructor of said class, can you spin out threads within the constructor that call methods that make use of the same Server class field?
PISDK.PISDK myPISDK = new PISDK.PISDK();
myPIServer = myPISDK.Servers.DefaultServer;
private void SpinThreads()
//Create threads that use
PISDK.PIPoint myPIPoint = myPIServer.PIPoints[tagname];
If the class is created in an STA thread and SpinThreads creates another STA or MTA thread, the STA COM calls would be marshaled back to the class's STA thread. COM manages the safety, but the performance would suffer.
Likewise if the class is created in an MTA thread, and associated STA thread would host the PISDK. SpinThreads would marshal calls back to that associated thread.