public static T[] getJsonArray <T>(string json) { string newJson = "{ \"array\": " + json + "}"; WrapperA <T> wrapper = JsonUtility.FromJson <WrapperA <T> > (newJson); return(wrapper.array); }
public static T[] getJsonArray <T>(string JSONString) { string newJsonStringA = "{\"array\": " + JSONString + "}"; WrapperA <T> wrapperA = JsonUtility.FromJson <WrapperA <T> >(newJsonStringA); return(wrapperA.array); }
public static void Main(string[] args) { SynchronizationCriticalClass rootClass = new SynchronizationCriticalClass(); WrapperA wrapperA = new WrapperA(rootClass); WrapperB wrapperB = new WrapperB(rootClass); // Do some async work with them to test synchronization. //Works good. DoSomethingAsyncDelegate work = new DoSomethingAsyncDelegate(DoSomethingAsyncCorrectly); work.BeginInvoke(wrapperA, null, null); work.BeginInvoke(wrapperB, null, null); // Works wrong. work = new DoSomethingAsyncDelegate(DoSomethingAsyncIncorrectly); work.BeginInvoke(wrapperA, null, null); work.BeginInvoke(wrapperB, null, null); }