Ich habe eine externe Referenz in meiner .NET Konsolenanwendung, die einige Übersetzungen für große Zeichenfolgen für mich tut.In C#, wie kann man wissen, wann ein externer Dienst Rückrufe durchführt?
In einer Schleife, mache ich eine Reihe von Anrufen an den Dienst. Es gibt wahrscheinlich 5000-8000 Anrufe insgesamt.
Der Dienst erfordert, dass ich eine Callback-Funktion implementiere, damit sie mir die übersetzte Zeichenfolge zurückgeben kann, wenn die Arbeit abgeschlossen ist. In einer anderen Klasse, die die translation der Schnittstelle erbt, habe ich ihre Callback-Funktion implementiert:
class MyTranslationServiceCallback : TranslationService.ITranslationServiceCallback
{
public void TranslateTextCallback(string sourceContent, string responseContent)
{
UpdateMyDatabase(responseContent);
}
}
Wenn das Debuggen, habe ich Console.Readkey
am Ende meines Main()
hinzugefügt, um die App zu verhindern, dass zu schließen, so dass es beenden kann alle bekommen der Rückrufe. Bisher habe ich einfach angenommen, dass wenn es für eine Minute oder so die Callback-Funktion beendet, es "vollständig" ist (ich weiß, das ist schlecht).
So wie es aussieht:
class Program
{
static void Main(string[] args)
{
foreach (var item in itemList)
{
TranslationService.TranslateText(item.EnglishText, "french");
}
Console.Readkey()
}
}
Was ist der richtige Weg, um zu bestimmen, ob oder ob nicht alle Rückrufe abgeschlossen sind?
Ist der Übersetzungsdienst des Status nicht sagen? Wenn nicht, können Sie die von Ihnen getätigten Anrufe zählen und die Rückrufe zählen. – Vijay
@ Vijayakrishna Nein, das ist ein Inhouse-Service, der relativ neu ist. Der Übersetzungsdienst verfolgt nichts und gibt nur die Quellzeichenfolge und die übersetzte Zeichenfolge in ihrer Rückruffunktion zurück. – AlbatrossCafe