I can suggest my today's discovery for estimating the seconds left in a 3 minutes process in C#.
Anyone better approach?
Stopwatch sw;
long totaltime = 0; // counts the total time passed in milliseconds
int secondsleft; // estimated time left
int i = 0; // counter in the foreach loop
// objList has couple of hundred elements
//secondsleft is recalculated after each iteration
foreach (var obj in objList)
{
sw = Stopwatch.StartNew();
//some time consuming process here
i++;
totaltime = totaltime + sw.ElapsedMilliseconds;
secondsleft = (int) Math.Floor((double) totaltime / i / 1000 * (objList.Count() - i));
}
Top comments (0)