Also keep in mind that you don't have to write your application entirely in a single language. You could use C/C++ for the performance critical bits and export a COM interface that C# can use, then building your GUI and everything else in C#.