Didn't quite get what you asked. I would use Shell Function to spawn a separate process and use a bat file.
Since bat-files are normal text files, you can create one easily in the code. Like vbc /reference:Microsoft.VisualBasic.dll MyFile.foo >message.txt and name the file, for example, compile.bat. The bat-file would compile MyFile.foo and output (error) messages to message.txt file from where you can check if the compilation succeeded.
Then in your code use Shell("compile.bat", AppWinStyle.MinimizedNoFocus, True, 10000) . With these arguments command window is minimized and your application waits until compilation is ready or times out after 10 seconds.
These are just suggestions how to do it. Play around a bit with bat-files and shell function. I believe you'll find a suitable way to use them in your application.