title: In Delphi, is TDataSet thread safe?
body: <p>I'd like to be able to open a TDataSet asynchronously in its own thread so that the main VCL thread can continue until that's done, and then have the main VCL thread read from that TDataSet afterwards. I've done some experimenting and have gotten into some very weird situations, so I'm wondering if anyone has done this before.</p>
  
  <p>I've seen some sample apps where a TDataSet is created in a separate thread, it's opened and then data is read from it, but that's all done in the separate thread. I'm wondering if it's safe to read from the TDataSet from the main VCL thread after the other thread opens the data source.</p>
  
  <p>I'm doing Win32 programming in Delphi 7, using TmySQLQuery from <a href="http://www.microolap.com/products/connectivity/mysqldac/" rel="noreferrer">DAC for MySQL</a> as my TDataSet descendant.</p>