Я вызываю DLL, написанную на C ++ (VS2012), из программного обеспечения (LabView) и загружает файл на сервер через FTP.
Пока DLL загружает файл (15 МБ), он не позволяет LabView продолжать выполнение других задач.
Как можно решить эту проблему?
Независимо от того, что вам нужно сделать на стороне C ++ для обеспечения безопасности потока вызовов, вам необходимо настроить вызов в LabVIEW так, чтобы он не выполнялся в потоке пользовательского интерфейса (который я считаю конфигурацией по умолчанию из соображений безопасности). Дважды щелкните по узлу и выберите параметр «Выполнить в любом потоке».
Кроме того, если вы хотите обеспечить запуск его в своем собственном потоке, вы можете поместить его в отдельный ВП и изменить параметры выполнения этого ВП для запуска в другой системе выполнения. LabVIEW не дает вам прямого контроля над потоками, потому что он управляет ими самостоятельно, но это должно заставить ВП работать в другом потоке.
Операции с FTP являются долгосрочными.
Лучше выполнять такие операции в другом потоке.