Попробуйте это: / * Прикрепите это к любому объекту в вашей сцене, чтобы он работал * /
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class MainThread : MonoBehaviour {
class CallInfo
{
public Function func;
public object parameter;
public CallInfo(Function Func, object Parameter)
{
func = Func;
parameter = Parameter;
}
public void Execute()
{
func(parameter);
}
}
public delegate void Function(object parameter);
public delegate void Func();
static List<CallInfo> calls = new List<CallInfo>();
static List<Func> functions = new List<Func>();
static Object callsLock = new Object();
static Object functionsLock = new Object();
void Start()
{
calls = new List<CallInfo>();
functions = new List<Func>();
StartCoroutine(Executer());
}
public static void Call(Function Func, object Parameter)
{
lock(callsLock)
{
calls.Add(new CallInfo(Func, Parameter));
}
}
public static void Call(Func func)
{
lock(functionsLock)
{
functions.Add(func);
}
}
IEnumerator Executer()
{
while(true)
{
yield return new WaitForSeconds(0.01f);
while(calls.Count > 0)
{
calls[0].Execute();
lock(callsLock)
{
calls.RemoveAt(0);
}
}
while(functions.Count > 0)
{
functions[0]();
lock(functionsLock)
{
functions.RemoveAt(0);
}
}
}
}
}
Вызовите это
MainThread.Call(YourFunction);
MainThread.Call(YourFunction, parameters);
Я думаю, что ваша проблема в том, что вы вызываете метод Unity из другого потока, который не разрешен
Да, в основном это должно отсортировать результаты и затем повторно обработанный для устранения дубликатов. Эти отходы могли также делаться во время вида, но мы можем только размышлять относительно того, как точно код работает в фоновом режиме. Вы могли попытаться улучшить производительность путем создания индекса, состоявшего из всех трех (3) полей.
Да, приложение должно сравнить каждую запись на "отличный" кэш записей, когда это идет. Можно улучшить производительность при помощи индекса, особенно на числовых и полях даты.
Эта страница имеет подсказки относительно улучшения Вашей производительности запросов и также некоторой информации об использовании анализатора производительности. Это скажет Вам что, если какие-либо индексы будут необходимы.