2016-08-24 4 views
-2

У меня есть этот код =>Невозможно преобразовать «двойной» до «междунар» C#

var timer = new System.Threading.Timer((e) => 
{ 
    upload(); 
}, null, 0, TimeSpan.FromMinutes(5).TotalMilliseconds); 

Предполагается выполнить этот метод каждые 5 минут, однако продолжает бросать ошибку: Не удается преобразовать «двойной» в 'INT'. Это не имеет никакого смысла, потому что там были другие строки, такие как «upload()», например «FTPFileUploader.upload()», и это будет работать нормально. Хотя я не хочу этого ... Пожалуйста, помогите ... Спасибо заранее!

ответ

0

Из документации по TimeSpan конструктору требуется int, но вы даете ему двойной вместо поля TimeSpan TotalMilliseconds.

Вам нужно указать свой двойник в int внутри конструктора TimeSpan.

(int)TimeSpan.FromMinutes(5).TotalMilliseconds 
0

TotalMilliseconds возвращает двойной, в то время как Миллисекунда возвращает Int, как он возвращает миллисекунды часть TimeSpan, в то время как TotalMilliseconds возвращает общее количество представленного TimeSpan.

1

System.Threading.Timer принимает целое число, но следующий код возвращает двойной

TimeSpan.FromMinutes(5).TotalMilliseconds 

Так что вам нужно, чтобы бросить его в целое число:

(int)TimeSpan.FromMinutes(5).TotalMilliseconds 
Смежные вопросы