Je suis nouveau sur Xamarin et j'essaie de créer une application Android simple avec F#. J'essaie de charger des données à partir d'une API REST avec asynchronisme, puis de les afficher. Je comprends que l'interaction avec l'interface utilisateur doit se faire sur le MainThread, et qu'il existe quelque chose du genre Activity.RunOnUiThread()
. J'ai essayé ce qui suit :
let onSearch args =
let search = this.FindViewById<EditText>(Resource_Id.search)
let searchResults = this.FindViewById<TextView>(Resource_Id.searchResults)
button.Text <- search.Text
async {
let! results = recipeSearch.GetRecipes search.Text
searchResults.Text <- results
}
|> Async.Start
button.Click.Add onSearch
Ce qui lève l'exception concernant l'interaction avec les éléments de l'interface utilisateur dans un autre thread. Et ceci :
let result = async {
let! results = recipeSearch.GetRecipes search.Text
return results
}
|> Async.RunSynchronously
searchResults.Text <- result
Cela va à l'encontre de l'objectif de l'exécution asynchrone.
Merci