Ich möchte eine asynchrone Methode von einer Reflektionsinstanz Task<T>
aufrufen, ich hatte Task.WaitAll
und .GetAwaiter().GetResult()
verwendet, aber alle sie werden Deadlock verursachen. Wie soll ich jetzt machen?Wie wird die asynchrone Methode in C# mithilfe von Reflection aufgerufen und führt nicht zu einem Deadlock?
Zum Beispiel:
Gegebenasync Task<T> Add<T>(T model);
Dies ist, wie ich es
void InvokeByReflection(object model) {
MethodInfo method = typeof(SAMPLE).GetTypeInfo().GetMethod("Add");
}
Wie Methode ohne Stillstand berufen?
Können Sie ein Codebeispiel posten? Was ist der Typ Ihrer Bewerbung? Konsole? Formen gewinnen? asp.net? – areller
Für die Frage, wie man mit Reflection eine Methode aufruft, spielt es keine Rolle, ob es Deadlock verursacht. Für die Frage, wie man auf eine Aufgabe wartet, ohne Deadlock zu verursachen, ist es egal, ob man Reflektion benutzt. Sie sind zwei unabhängige Fragen. Mit welcher der beiden brauchst du Hilfe? – hvd
* Zum Beispiel: ' async Aufgabe Hinzufügen (T-Modell); void InvokeByReflection (Objektmodell) { MethodInfo method = typeof (SAMPLE) .GetTypeInfo(). GetMethod ("Add"); // Wie Methode ohne Deadlock aufrufen? } ' –