Вызов функции C из swift в фоновом режиме - PullRequest
0 голосов
/ 25 февраля 2019

Моя задача здесь - вызвать функцию, написанную на 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 после всего асинхронного кода.Распечатывается сообщение.Только код внутри асинхронного блока не выполняется.

...