hier im gleichen Kontext bleibt, ist was ich habe:C# awaitable Aufgabe
eine Multi-Plattform (Xamarin/C#) Anwendung
eine Schnittstelle, die ein Verfahren (für eine Benutzerschnittstellenaufgabe definiert,), die plattformspezifische Implementierungen
auf einer Plattform hat muss die Implementierung einige async Anrufe warten, auf der anderen - es ist nicht
My Umsetzung:
die Schnittstelle definiert das Verfahren, wie: Aufgabe DoSomething()
auf der Plattform, wo die Umsetzung async ruft
Verfahren abzuwarten hat, implementiert als:
async Task DoSomething()
{
// code
await // async();
// code
}
und das funktioniert gut
auf der Plattform, wo die Umsetzung nicht andere Asynchron-Methoden nicht nenne ich haben 2 Möglichkeiten:
die Methode als async Aufgabe DoSomething definieren() und erhalten eine Kompilierzeit Warnung "Diese asynchrone Methode fehlt 'warten' Bediener und wird synchron ausgeführt ..."
definieren Sie die Methode als Aufgabe DoSomething(), die Task.Run (() => {/ Hauptlogik hier /} zurückgibt, aber wenn ich call erwarte DoSomething() - die Hauptlogik wird auf einem anderen Thread ausgeführt, die ich nicht passieren will. Mit der Implementierung in (1) calling wait bleibt DoSomething im selben Thread.
Wie löse ich das - geben eine awaitable Aufgabe, die nicht async ist und bleibt auf dem gleichen Thread/Kontext?
Scheint zu arbeiten - danke! – Dar