LoadLevelAsync progress doesn't include Awake() of the next scene

I am working on making a transition scene and I need help.
On the menu scene, Play button do the loadSceneAsync with a transition (or a loading bar, I tried both ways).
The load bar finishes as the LoadSceneAsync is "isDone ", otherwise it shows the progress (slider tutorial…you know the standard way).
My issue is that the game freezes before showing the next scene and I don’t know what to do.
Important information: The Awake() method of the next scene serialize an xml file into a class, and this what causes the freeze.

The Awake method:


Within the InitializeServices, there is this line:

            using (StringReader reader = new StringReader(xmlWTF))
                this.WordTreeFreqNode = (WordTreeFrequencyNode)xs.Deserialize(reader);

xmlWTF is a path to a xml file. This line reads a file and deserialize it: it is always the same file content to deserialize each time.
This line is what make the game “freezes”. The deserialization is however necessary.

  1. Do you know how to do in these situations? What are the best practice?
  2. Is there a way to include Awake() of the next scene into progression?


A rule of thumb is to only use Awake to initialize the script and communicate within the script while the Start method is used to communicate with other scripts. If the Awake method doesn’t communicate with other scripts i don’t know what the problem is. Maybe sharing the part of the awake method will give more insight.