I then take my class, which has a function that starts the BeginReadMultiSample, and create an instance of it in another project. Now when I run the line "myReader.SynchronizingObject = Me", I get an InvalidCastException: specified cast is not valid. Any ideas what I need to set this to when using and instance of my class?
The SynchronizingObject property needs an object that implements the ISynchronizeInvoke interface. You might be trying to implement the functionality into your own class and then trying to assign this class to the property without implementing the interface. Hence the error. It works in the examples because Me is referring to the Form class. And this class does implement this interface.
Check out these links: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemcomponentmodelisynchronizeinvokeclasstopic.asp
You should also check out the DAQmx .NET Framework Help topic Asynchronously Reading and Writing with the NI-DAQmx .NET Class Library. This can be accessed at Start >> Programs >> National Instruments >> NI-DAQ >> DAQmx .NET Framework Help.
Please look through these help documents as thoroughly as possible, as this seems to be a .NET coding issue more than a NI-DAQ issue.