Hello, again!
I was under the impression that the reason why pointers were no longer used was because C# could shuffle memory storage space around to improve performance while the program was running, making the addresses in memory dynamic even for single instances of objects.
Guess I was wrong.
As for the other rhetoric, It sounds like you're far more knowledgable than I on C# (I'm rather new to C#, but I've experience with C/C++), so if you say that ref is going to behave, that is quite nice to know.
Now, if I understand you correctly, the option for keeping this in a single thread would be to do the following:
1. On clicking acquire, the program follows the handlers/callbacks to the frame capture function.
2. Within the continuous frame capture function, the code enters an infinite loop that executes
for the duration of the run, with some control statement, for example, while(NotDone).
3. Within this loop, I perform the capture, and then tell the system to sleep for the appropriate amount of time.
4. At the end of the sleep period, control is passed back to the thread, and it loops again.
5. However, during every cycle, the messages posted to the queue (such as a click on 'stop') will be processed using the .DoEvents() method?
Okay, I'll buy that. DoEvents() looks very handy, indeed. This will save me a lot of trouble!
Thank you very much!