Page 1 sur 1

Astuce : Execute In Main Thread

Publié : 13 Août 2019 19:17
par ZeroKcm
Hello,

J'ai besoin comme souvent d'utiliser un PlayerPrefs suite à un call réseau...
Et bien sur, ça ne marche pas comme on n'est pas sur le main thread. J'ai regardé sur le net mais les solutions ne me plaisent pas trop alors, j'ai fait la mienne :

Je vous la partage, ça pourrait vous être utile :


Appel réseau... puis

Code : Tout sélectionner

void MethodAfterNetworkCall()
{
	int coucou = 32;
	Game.ExecuteInMainThread(() =>
	{
		// Execute ce code sur le mainThread
		PlayerPrefs.SetInt("coucou", coucou); 
	});
	...
}
Voici le code de Game.cs :

Code : Tout sélectionner

using System.Collections.Generic;
public delegate void DelegateVoid();

public class Game
{
	static Queue<DelegateVoid> actions = new Queue<DelegateVoid>();

	public static void ExecuteInMainThread(DelegateVoid action)
	{
		actions.Enqueue(action);
	}

	private void Update()
	{
		if (actions.Count > 0)
		{
			actions.Dequeue().Invoke();
		}
	}
}

Re: Astuce : Execute In Main Thread

Publié : 26 Août 2019 11:02
par E3DStef
Bonne approche :-) merci du partage ^^