>>If you'd point me to a resource to answering this question, I'd appreciate it.
>
>Do you need a multi-threaded dll in ALL the cases, for any possible case?
>
>A multi-threaded program (COM dll or whatever) must deal with synchronization (between threads) problems. A single threaded program is much simpler, so, it may be faster and smaller. And don't forget, the simpler something is, the less chances for bugs! :)
>
Arguments in favor of single-threading:
- maximum performance. An MTDLL has task switching overhead to allow multiple things to happen interleaved.
- minimizes effect of stateful operation
- enforces serialization on a FIFO basis
- can be delivered without upgrading to VFP6 SP3