kae*_*edo 11 f# asynchronous xamarin.android xamarin
我是Xamarin的新手,我正在尝试使用F#构建一个简单的Android应用程序.我正在尝试使用异步从REST API加载数据,然后显示它.我知道必须在MainThread上完成与UI的交互,并且有一些内容Activity.RunOnUiThread()
.我尝试过以下方法:
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
Run Code Online (Sandbox Code Playgroud)
这会引发与另一个线程中的UI元素交互的异常.还有这个:
let result = async {
let! results = recipeSearch.GetRecipes search.Text
return results
}
|> Async.RunSynchronously
searchResults.Text <- result
Run Code Online (Sandbox Code Playgroud)
击败了做异步的目的
谢谢
试试这个:
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
this.RunOnUiThread(fun () -> searchResults.Text <- results)
}
|> Async.Start
button.Click.Add onSearch
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
186 次 |
最近记录: |