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