Unable to update UI.Text.text at runtime

I’m trying to chnage the text of the Text component.
I’m facing a really strange behavior of this component because yesterday it worked fine.

My Text variable is refernced through the editor, and I want to change it’s content at runtime.

public Text MyTxtElement;

Evreytime I try to access the text I get the error “get_enabled can only be called from the main thread.”

MyTxtElement.text = "";
MyTxtElement.text = HighscoresUsernames*;*

MyTxtElement.text = “123”;
None of this examples works, the code just exit or skipping it.
I’ve tried to surround this part with try and catch block but it won’t even enter the catch and just skipping the whole function.
I saw few related topics from unity forum as [this one][1], and it seems that the unity developers haven’t come up with solution.
I’m using Unity 4.6 and running on Android device.
Did anyone face this issue?
EDIT:
Here’s the ParseCall script (my custom script for parse queries):
ParseQuery query = ParseObject.GetQuery (“Example”)

  •  	.OrderByDescending ("Example")*
    
  •  	.Limit (10);*
    
  •  query.FindAsync().ContinueWith(t => {*
    
  •  	IEnumerable<ParseObject> ParseHighscores = t.Result;*
    
  •  	int index = 0;*
    
  •  	foreach (ParseObject currentItem in ParseHighscores) {*
    
  •  		string user = currentItem.Get<string>("Username");*
    
  •  		int score = currentItem.Get<int>("Highscore");*
    
  •  		try{*
    
  •  			usernames[index] = user;*
    
  •  			highscores[index] = score;*
    
  •  		}catch(UnityException e){*
    
  •  			Debug.Log(e);*
    
  •  		}*
    
  •  		index++;	*
    
  •  	}*
    
  •  	highscoresVarsSet = true;*
    
  •  	GUIStart.getWorldHighscores(); ////// This is the line that calls the function where the Text component*
    

and the function with the Text:

  • public void getWorldHighscores() {*
  •   MyTxtElement.text = ""; ///// Script breaks*
    
  •   HighscoresScores = parseCalls.getHighscoreScores();////// Populating the lists, thats kinda useless, I could just send them as function params.*
    
  •   HighscoresUsernames = parseCalls.getHighscoreUsernames();*
    
  •   int indexI = 0;*
    
  •   for (int i=0;i<HighscoresScores.Length;i++){*
    
  •   	indexI++;*
    

_ if (HighscoresScores != 0){_
* if (i==0){*
Debug.Log (indexI + ". "+HighscoresUsernames_+ " " + HighscoresScores*);
MyTxtElement.text = indexI + ". "+HighscoresUsernames+ " " + HighscoresScores; ///// Script breaks*

* }else{
Debug.Log ("
"+ indexI + ". "+HighscoresUsernames
+ " " + HighscoresScores
);

MyTxtElement.text = “”+MyTxtElement.text +"
"+ indexI + ". "+HighscoresUsernames
+ " " + HighscoresScores
; ///// Script breaks*

* }
}
}
}
[1]: http://forum.unity3d.com/threads/label-text-updates-failing.281053/*_

It’s clear you are trying to call:

GUIStart.getWorldHighscores();

In something that isn’t the main thread, Unity doesn’t like this. You must put it outside of the asynchronous call.