A few KHz is definitely a problem because windows itself isn't deterministic at such resolutions.
I'm not sure what kind of speed you will get from using a file, but it probably won't be very good. Consider the fact the you constantly have to open and close the file and write to the disk and you will see why this isn't very good.
Look
here for some material concerning this (particularly the link Integrating DLLs). I don't know if this will help or not, but you should check it.
Regarding TCP, I don't know of any resources about that, but you can start by looking up TCP tutorials here to see how it works in LV and look for some others for C on the net. The big advantage here (I think) is that you maintain a constantly open connection between the programs.
As for the DLL option, that depends on your program. I think the above link has something like that as well, but if not, it's basically writing a function which will return the data and exporting it as a DLL in your C compiler.
In any event, you will probably need to do some matching between the data types, because they're represented differently in LV. There should probably be some articles and threads discussing this.
___________________
Try to take over the world!