В моем проекте я интегрирую приложение Matlab GUI в приложение C#.Запуск Matlab GUI от C#
Решение, которое я думал о том, чтобы создать отдельное приложение с Matlab GUI и запустить его с помощью кнопки в C#:
Process exeProcess = Process.Start("Data_Capture_Direct_call.exe");
if(!exeProcess.HasExited)
{
exeProcess.WaitForExit();
}
exeProcess.Close();
Проблема в том, что после того, как заставка в Matlab GUI закрыт и до фактическая программа открывается, C# обнаруживает, что программа уже закрыта и переходит к следующей строке.
Кроме того, следующие несколько строк кода не выполняется должным образом:
List<String> Movement = new List<String>();
List<String> Repetition = new List<String>();
List<String> Duration = new List<String>();
using (CsvFileReader reader = new CsvFileReader("capture.csv"))
{
CsvRow row = new CsvRow();
while (reader.ReadRow(row))
{
Movement.Add(row[0]);
Repetition.Add(row[1]);
Duration.Add(row[2]);
}
}
for (int i = 1; i < Movement.Count; i++)
{
dataGridView1.Rows.Add(i, Movement[i], Repetition[i], Duration[i]);
}
Что происходит, что после того, как C# ошибочно определяет закрытие процесса, файл capture.csv становится пустым, и данные не загружается в сетку данных.
Пожалуйста, дайте мне знать, где я делаю ошибку, или если есть лучший способ сделать это!
Спасибо за вас полный ответ. Мне гораздо проще просто вызвать мой графический интерфейс Matlab, так как это сложный графический интерфейс, и для преобразования всех требуется много усилий. Однако проблема заключается в том, что я поместил мои файлы GUI (.m .fig) в папку отладки и запустил так, как вы сказали, что matlab откроется на панели задач (без окна) и закрывается через несколько секунд. – irharrier2
Вам не нужно помещать любые файлы matlab в вашу папку отладки. Все они должны быть в текущей папке Matlab. Если он не работает, возможно, ваши m-файлы gui не находятся в текущей папке Matlabs. –