I'm not sure on how you're able to use the event structure if you say that you have the Base edition since the Base edition doesn't include the event structure. That aside, the little picture and brief (quite applicable word in this case) description simply tell me that you have a pretty interface (sarcasm aside)

.
In any event, the producer-consumer architecture can be used in a variety of ways. One typical means is for the producer loop to handle your UI. The individual event cases shouldn't perform anything that takes a long time. Its intent is to place actions on a queue for the consumer loop to take care of, so that the producer can quickly return to respond to events. The consumer loop is where you do the work.
You can actually have more than one consumer loop. Thus, you can have a consumer loop that performs the UI operations, and the other consumer loop is doing your data collection. There is no error margin that one can give for the timing since it's dependent on way too many factors. You can do a few things in software:
- You can have a minimum. For instance, you can get the tick count before you start the acquisition, and get it after you've got the data. If the difference is less than your 100 msec, then wait the difference. If it's more, don't wait.
- You could use a timed loop based on a DAQ clock. Not sure if this is available in the Base edition. This isn't the same as a real-time loop, though, but it's as close as you're going to get.
- Change the way you perform your data acquisition so that you get your samples at the timing you need. Basically do a buffered acquisition if your DAQ card has that capability. The DAQ card collects data at your desired rate, and the software pulls it from the buffer. As long as your buffer is large enough and you can keep up you should be able to do this.