code snippet link Ich entwickle Windows 8-Anwendung in C#. Ich habe 2 textBlocks in meiner GUI. Ich bekomme eine Texteingabe vom Benutzer und weise sie textblock1 mit textBlock1.Text = user input;
zu. Danach rufe ich eine Methode, die einige Daten aus der API in JSON und einen Teil der Daten in TextBlock2 mit textBlock2.Text = "specific data";
gefüllt Text aber beide Textblöcke wird zur gleichen Zeit geändert, die ich nicht will. Entsprechend der Codefolge sollte der Text von textBlock1 früher geändert werden, da textblock2 nach dem Aufruf der API in etwa 10 Sekunden lang geändert wird. Wie kann ich Text von textBlock1 zuerst ändern? helfen Sie mir, wie ich neu in der Windows-Entwicklung bin.Wie aktualisiert man textBlock Text nach der Aktualisierung seines Textes?
Antwort
In Ihrer Methode verwenden Sie
HttpResponseMessage response = client.GetAsync(userInput).Result;
string result = response.Content.ReadAsStringAsync().Result;
Wenn Sie eine Async-Methode aufrufen, sollten Sie die warten auf Anweisung verwenden, wenn der Code für den Methodenaufruf warten soll, wie folgt aus:
HttpResponseMessage response = await client.GetAsync(userInput).ConfigureAwait(false);
string result = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
Aber dafür müssen Sie Ihre Methode Asynchron ändern:
private async void button_Click(object sender, RoutedEventArgs e)
Vielleicht ist es Ihr Problem löst.
Offtopic: Weil Sie neu sind, empfehle ich Besuch this Seite und lesen Sie sie, Stack Overflow besser zu verstehen.
Update: habe ich vergessen ".ConfigureAwait (false)"
Entschuldigung @SeanStayn. Es konnte mein Problem nicht lösen. –
Der API-Aufruf die Benutzeroberfläche sperrt. Wenn Sie textblock1 vor dem Textblock 2 aktualisieren möchten, müssen Sie den Aufruf auf einem anderen Thread durchführen. So etwas sollte funktionieren.
//make the method async.
private async void button_click(object sender, RoutedEventArgs e)
{
//...
//assuming userMessage is textblock2.
userMessage.Text = await MakeAPICallAsync();
//...
}
//where MakeAPICallAsync() is another function defined as
private async Task<string> MakeAPICallAsync()
{
//API call;
return result;
}
- 1. Wie setze ich QLabel Größe entsprechend der Größe seines Textes?
- 2. Wie man Text an TextBlock in der Schleife sofort anfügt?
- 3. Wie aktualisiert man timezonedb in PHP (Aktualisierung der Zeitzoneninfo)?
- 4. Rich Text Box wie Textblock zu markieren
- 5. Wpf DatePicker Text nicht nach der Aktualisierung der Bindungsquelle aktualisieren
- 6. Lokalisieren von Tag anhand seines Textes mit css
- 7. Einstellung WPF Text TextBlock-
- 8. TextBlock- UI nicht mit INotifyPropertyChanged Aktualisierung
- 9. Wie erhält man Zeichenkoordinaten in einem Textblock?
- 10. Wie man formatierten Text in TextBlock wpf dynamisch zeigt
- 11. Wie TextBlock Text innerhalb von ListBox Artikel
- 12. Wie ändert man den Span-Text im Textblock?
- 13. TextBlock passt Text in ListView an
- 14. Verketteter Text in TextBlock DataTrigger
- 15. Formatieren Sie einen Teil des Textes von TextBlock mit iValueConverter
- 16. Mit WPF, wie ein TextBlock abhängig von dem Inhalt seines unterordneten TextBlocks minimiert wird?
- 17. TextBlock Text-Eigenschaft wird beim Aktualisieren der Quell-Binding-Eigenschaft nicht aktualisiert?
- 18. WPF - TextBlock- - Format Text Programmatically
- 19. Get angezeigt Text von TextBlock-
- 20. Wie man einen Deckel der Höhe seines Inhalts macht
- 21. wie man Markierungen auf Google Karte ohne Aktualisierung aktualisiert
- 22. Schlagschatten auf Text im Textblock
- 23. Wie Überspringen der UI-Aktualisierung, wenn bereits aktualisiert?
- 24. JQUERY DATATABLE Filterparameter nach der Aktualisierung beibehalten
- 25. WPF TextBlock Text geändert benachrichtigen
- 26. Wie Doppelpunkt nach dem Ende des Textes
- 27. style textblock button change text
- 28. Wie man einen ViewController nach der Benutzeranmeldung automatisch aktualisiert
- 29. Einstellung der Tkinter-Listenfeldauswahl nach der Aktualisierung
- 30. wie wird der Wert nach der Aktualisierung der Seite gelöscht?
Es hilft, wenn Sie ein Code-Snippet veröffentlichen. –
@SeanStayn stayn ich habe Code-Snippet hinzugefügt, werfen Sie einen Blick. hoffe, es klärt, was ich versuche –
Veröffentlichen Sie den Code der 'populateResponses' Methode. – Unknown