Может быть, мое отсутствие понимания какой-то ключевой концепции программирования в отношении полиморфизма или наследования интерфейса и т. Д., Это должно быть легко.Я новичок.
У меня есть отдельный класс в программе на C #, который называется tts.Теперь я определил функцию, которая называется говорить.вот оно:
class tts
{
public void speak()
{
Process process1 = new Process();
process1.StartInfo.FileName = "C:\\Program Files\\eSpeak\\command_line\\espeak.exe";
process1.StartInfo.Arguments = "hello";
process1.StartInfo.UseShellExecute = false;
process1.StartInfo.CreateNoWindow = true;
process1.Start();
//process1.Kill();
}
}
Когда я вызываю эту функцию из главной формы для события (listBox1_SelectedIndexChange
), она работает нормально.Эта программа читает «привет» каждый раз, когда я прокручиваю свой список.Но я хочу убить process1 при прокрутке до следующего элемента в списке.когда я реализую process1.Kill()
(раскомментируя метод kill) в функции talk, программа не читает "привет".То, что происходит, - то, что process1 убивают немедленно.Так что я бы не реализовал там метод Kill () под функцией говори.Но я хочу убить process1 из основной формы, когда я изменяю индекс списка (listBox1_SelectedIndexChange
).Вот мой основной код формы.
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
tts obj = new tts();
obj.speak();
}
То, что я хочу сделать, это:
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
tts obj = new tts();
obj.speak();
process1.Kill();
}
, что, конечно, не будет работать, так как process1 находится в рамках функции говорить в классе tts,как выполнить process1.Kill()
из основной формы?
Я бы оценил сам базовый код больше, чем технические термины о том, что делать.