Tôi nghĩ logic của tôi là thiếu sót ....Thời gian ước tính còn lại, tôi còn thiếu gì?
trong một vòng lặp Tôi có:
int seconds = (int) (elapsed.TotalSeconds/ItemPos) * (Count - ItemPos);
vòng lặp này cập nhật khoảng một lần mỗi giây ....
vấn đề tôi có được đó giây luôn kết thúc bằng giá trị 0 (0).
điều này là do giá trị ItemPos
luôn cao hơn sau vòng lặp đầu tiên hơn elapsed.TotalSeconds
.
Vì vậy, ví dụ:
nếu 3 giây vượt qua
ItemCount = 20 , so 3/20 = 0.15 - rounds to zero.... 0 * anything = 0......
Tôi đang làm gì sai?
bộ phận đầu tiên của bạn được làm tròn đến 0. Cast các toán hạng để (float) đầu tiên. – EricLaw
@EricLaw: TimeSpan.TotalSeconds là 'double' – dtb
@EricLaw - rất hay ... Tôi sẽ thêm giải pháp ... –