public void Initialize(string keyPath)
{
Logger.Write("Initializig " + _path + " with " + keyPath);
var initialized = false;
_pluginLoop = new Thread(() => {
var proc = new Process();
run(
proc,
string.Format("initialize \"{0}\"", keyPath),
(line) => {
if (line == "initialized") {
_process = proc;
initialized = true;
}
if (line == "end-of-conversation") {
_isQuerying = false;
return;
}
_dispatch("event|language-plugin-outout " + line);
_responseDispatcher(line);
_dispatch(line);
});
initialized = true;
});
_pluginLoop.Start();
while (!initialized)
Thread.Sleep(10);
_pluginLoop = null;
}