Ich bin auf der Suche nach dem besten Weg, um ETA einer Operation (IE: Datei-Download) mit einer linearen Fortschritt Informationen zu berechnen.
Nehmen wir an, ich habe die folgende Methode, die aufgerufen wird:
void ReportProgress(double position, double total)
{
...
}
Ich habe ein paar Ideen:
- den Fortschritt in einer bestimmten Zeitspanne (z. B. die letzten 10 Sekunden) berechnen und diese Geschwindigkeit als Durchschnittsgeschwindigkeit für den Vorgang verwenden
- einen Satz der letzten x gemeldeten Fortschritte aufbewahren, die Geschwindigkeit jedes Inkrements berechnen und den Durchschnitt verwenden