Я делаю плагин C # DLL для EXE, написанный на VB6. У меня нет доступа к источнику EXE. Сама DLL работает и прекрасно взаимодействует с EXE.
Вот процесс для события:
- Пользователь выдает команду на EXE, которая затем вызывает функцию в DLL, передавая объект в качестве параметра
- DLL обрабатывает данные, которые иногда занимают много времени
DLL отвечает, вызывая функцию переданного объекта. Сама функция DLL ничего не возвращает
public void DoCommand(object CommandSettings)
{
//ObjectVB6 is my custom class to allow easy calling of COM methods and properties
ObjectVB6 CS = new ObjectVB6(CommandSettings);
... //process data
CS.CallMethod("MyReply", args);
}
Моя проблема в том, что во время длинных запросов (из DLL) пользовательский интерфейс EXE зависает.
Каков наилучший способ предотвратить это? Я пытался использовать асинхронные запросы MySQL, которые были бесполезны, и пытался использовать несколько потоков, которые просто сталкиваются с проблемами защищенной памяти.
Любой совет, который вы можете дать, был бы потрясающим. Я пытался решить эту проблему в течение нескольких дней. Благодаря.