Асинхронная функция работает на ПК, но не на Android - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть этот код в Unity3D (используется .Net 4x).в асинхронной функции я вызываю другую функцию, и она никогда не выполняется.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Threading.Tasks;

public class thread : MonoBehaviour
{
    void Start()
    {       
        DoTaskAsync();
    }

    public async void DoTaskAsync()
    {
        await Task.Run(() =>
        {
            doSomething();
        });
    }
}

Код отлично работает на ПК и выполняет какую-то работу.Но когда я строю для Android и работаю в Android, я не получаю ошибок, но работа что-то не делается.

Есть идеи по этому поводу, пожалуйста?Заранее спасибо.

1 Ответ

0 голосов
/ 25 сентября 2018

Вам нужно дождаться DoTaskAsync() метода, где вы его вызываете.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Threading.Tasks;

public class thread : MonoBehaviour
{
    void Start()
    {       
        await DoTaskAsync();
    }

    public async void DoTaskAsync()
    {
        await Task.Run(() =>
        {
            doSomething();
        });
    }
}
...