11
저는 Xamarin을 처음 사용하고 F #으로 간단한 Android 앱을 제작하려고합니다. 비동기로 REST API에서 데이터를로드하고 표시하려고합니다. MainThread에서 UI와의 상호 작용을 수행해야하며, Activity.RunOnUiThread()
행에 뭔가가 있음을 이해합니다. 다른 스레드에서 UI 요소와 상호 작용에 대한 예외를 throwXamarin Android F # 비동기 블록의 UI 업데이트
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
: 나는 다음을 시도했습니다. 그리고이 :
let result = async {
let! results = recipeSearch.GetRecipes search.Text
return results
}
|> Async.RunSynchronously
searchResults.Text <- result
패배
감사
'할 넣어보세요! Async.SwitchToContext Application.SynchronizationContext'를 실행하여'searchResults.Text'를 업데이트하십시오. – ildjarn