>Hey Joel,
>
>I was under the impression that hyperthreading is just for threads, not processes. Are you saying that hyperthreading will run the VFP processes in your tool like threads in parallel?? Also are there tests I can run to see if your tool is indeed using all the processors available when running tasks in parallel. I'm just skeptical that vfp processes can perform like threads. If these tests are not in this release it might be a good idea to make them available. Thanks.
Hi Grover,
Every process contains at least one thread, and all code executes on a thread. You can't separate the two. A process is one or more threads with its own memory space and resources isolated from other processes. One or more threads can exist within a process and share those resources (the degree to which this can be done in VFP is limited), but there is always at least one thread. Windows schedules processor time for each thread, but those threads will execute in parallel whether the threads come from one process or multiple processes. So, yes, VFP processes run just like threads because they contain threads, and that includes HyperThreading.
The ParallelFox examples demonstrate that tasks run in parallel. In the Windows Task Manager, you will see that the "before" examples use the equivalent of one core (on a quad core machine, CPU usage is 25%). The "after" examples use 100% of the CPU (or close to it) and the examples take less time to execute. As I mentioned in the blog, those examples don't work well with HyperThreading.