There are two or three things you could do (that I know of).
You can make a Console app which would serve as a "loader"; if you pass arguments, then it starts a new WinForms process and closes itself, otherwise it does the processing and blocks the prompt until finished.
There are also ways to hide the Console window (check this link for example:
Hide Console Window in Console Application In C#.Net « DotNet Friends) once the app is started, but a Console window will appear quickly anyway.
There is also sort of a "hack" that looks like it might work (haven't tested it):
How To Create a Console/Window Hybrid Application in C# by Jeffrey Knight. The idea is to create a WinForms app, and then, if you want to block the console, check if the foreground window is actually a Console window and attach to that thread using some Kernel32 calls.
I think these are all you options - if you really want to have a (what he calls a) "hybrid" app.