Моя задача здесь - вызвать функцию, написанную на C, из main.swift.Но этот вызов должен выполняться в фоновом режиме (асинхронно), поскольку он занимает несколько минут.
trialFunc () занимает около 30-45 минут, чтобы завершить выполнение операции.Запуск его в основном потоке выдает ошибку 0x8badf00d.И когда я пытаюсь запустить его в фоновом режиме, похоже, что управление достигает конца выполнения.
Мой main.swift показан ниже:
import Foundation
//let dispatchQueue = DispatchQueue(label: "Background thread", qos:.background);
//dispatchQueue.async {
// trialFunc(); <-- This does not run
// print("Inside async");
//};
trialFunc(); <-- This works but runs on main thread
Содержимое моего соединительного заголовка:
#include "callIntoC.h"
Содержимое callIntoC.h показано ниже:
#ifndef callIntoC_h
#define callIntoC_h
void trialFunc(void);
#endif /* callIntoC_h */
Содержимое файла callIntoC.c
#include "callIntoC.h"
#include "app/call_main.h"
void trialFunc()
{
my_main(); <-- This calls into the C code which does all my network I/O op
return;
}
Как заставить мой trialFunc () запускаться в фоновом потоке при вызове из main.swift?Я новичок в разработке iOS, любая помощь приветствуется.TIA ...
Обновление: я пытался напечатать что-то в main.swift после всего асинхронного кода.Распечатывается сообщение.Только код внутри асинхронного блока не выполняется.