Asynchrone programmatische und virtuelle Funktionen

8

Wenn ich eine Schnittstelle habe wie:

%Vor%

und eine der Klassen, die diese Schnittstelle implementieren, benötigt zufällig keine asynchronen Methoden. Wie kann ich diese Funktionen überschreiben?

Mit anderen Worten, wie kann ich "void" und "bool", die in Task-Objekte eingepackt sind, korrekt zurückgeben?

Zum Beispiel:

%Vor%

HINWEIS - Ich kann den Task-Kram nicht vollständig entfernen, da einige der Klassen, die diese Schnittstelle implementieren tatsächlich asynch sind.

Danke

    
swinefeaster 23.11.2012, 07:32
quelle

1 Antwort

15

Es ist nicht klar, was Sie erreichen wollen, aber ein Ansatz (der am meisten nach "normalem" Code aussehen würde) besteht wahrscheinlich nur darin, sie zu asynchronen Methoden zu machen:

%Vor%

Ohne await -Ausdrücke wird die Methode trotzdem synchron ausgeführt. Sie erhalten eine Warnung für jede Methode, aber Sie können das nur für diesen Code mit #pragma deaktivieren.

Alternativ - und ich schätze einfach, dass #pragma keine Warnungen deaktiviert - wäre es Task.FromResult :

%Vor%     
Jon Skeet 23.11.2012, 07:38
quelle