I can run python script from c# using following code:
const string python = @"C:\path\to\python.exe";
const string myPythonApp = @"C:\path\to\TestFile.py";
var myProcessStartInfo = new ProcessStartInfo(python)
{
    UseShellExecute = false,
    RedirectStandardOutput = true,
    Arguments = myPythonApp + " " + args
};
var myProcess = new Process();
myProcess.StartInfo = myProcessStartInfo;
myProcess.Start();
var myStreamReader = myProcess.StandardOutput;
var result = myStreamReader.ReadLine();
Work well, but start new process is very slow (need to run milions of iterations). I want to try start python proces once and then pass arguments... Pseudo code:
C#:
myProcess.Start();
var myStreamReader = myProcess.StandardOutput;
for (var i = 0; i < 100000; i++)
{
    // here I want to pass new arguments to cmd
    var result = myStreamReader.ReadLine();
}
Python:
def do_something(args):
    # do something
    pass    
while (True):
    args = input()
    print(do_something(args))
Some ideas? (Iron Python is bad, can not import packages).