avinsk
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Здравствуйте! Столкнулся со следующей задачей, которая, как мне кажется, должна быть довольной распространенной, но как ее решать, не нашел. Есть написанная на Фортране функция, которая выполняет какие-то вычисления (скажем, расчет элементов большой матрицы каким-то сложным способом). Конечно, такой расчет занимает какое-то время (секунды-минуты-часы - зависит от задачи). Эта функция вызывается из написанной на Си (а конкретно, использовалось MFC) программы, которая служит интерфейсной частью. Сейчас при старте расчетов тупо пишу "Подождите...", но очень хочется сделать по-человечески - отображать ход вычислений на ProgressBar и чтобы была кнопка Cancel для принудительного прерывания. Вопрос - как организовать такое взаимодействие между Фортраном и Си наилучшим образом? Наверное, стоит запускать вычислительную функцию как отдельный поток, но при помощи каких инструментов (методов, встроенных механизмов и процедур) организовывать взаимодействие между потоками? Может, у кого-то есть уже готовый пример? |