попробуйте эту функцию, чтобы преобразовать формат времени, как вам требуется
timeFormetChange(){
var date =new Date();
var newDate = date.getDate();
var newMonth = date.getMonth();
var newYear =date.getFullYear();
var Hour = data.getHours();
var Minutes = data.getMinuets();
return `${newDate}-${newMonth }-${newYear} ${Hour}:${Minutes }`
}
Теперь, когда у нас есть полный код, я могу сказать, что определенно не вижу проблемы - не совсем, как описано, так или иначе.
У меня есть немного входа для указания незадолго до и после вызовов DownloadDataAsync, и когда завершенный обработчик запущен. Если я загружаю большой файл по 3G, существует пауза между "прежде" и "после" но UI подходит возрасты, прежде чем файл завершит загрузку.
У меня есть подозрение, что подключение сделано синхронно, но фактическая загрузка является асинхронной. Это все еще неудачно, конечно - и возможно плывущий на плоскодонке, все это в другой поток является способом пойти - но если я прав, что об этом, по крайней мере, стоит знать.
Ummm.... Мне просто любопытно
У Вас есть какие-либо Брандмауэры на?
какие-либо брандмауэры вообще на Вашей машине?
Возможно, ZoneAlarm?
Я попробовал Ваш код, и он хорошо работает.
Могли Вы отправлять свое Основное (Args []) метод и значение a и b, когда это будет выполнено:
int a, b;
ThreadPool.GetMaxThreads(out a, out b);
Я попробовал его в.NET 3.5 и VS2008. Я в замешательстве, но я убежден, что это относится к установке на Вашей машине. Не код. Проверьте эти вещи:
Я могу выполнить Ваш прекрасный код. И форма обнаруживается, и загрузка завершается ПОСЛЕ ТОГО, КАК форма обнаружилась.
У меня нет замораживаний, как Вы упомянули.
Я думаю, что это имеет некоторое отношение к среде, Вы выполняете его внутри.
На какой версии.NET/Visual Studio Вы?
Использование () оператор пытается звонить, Располагают () WebClient, в то время как это все еще загружает. Расположить метод, вероятно, ожидает загрузки для окончания перед продолжением.
Попытайтесь не использовать использование () оператор и избавьтесь от WebClient в своем событии DownloadDataCompleted.
DownloadDataAsync по сравнению с DownloadData в потоке неUI:
DownloadDataAsync хорош, потому что он на самом деле не связывает поток до обработки DownloadDataCompletedEvent, после того, как запрос был выполнен, и сервер отвечает.
Я полагаю, что Jon Skeet на правильном пути - я читал, то разрешение DNS должно завершиться синхронно, прежде чем асинхронный Запрос HTTP стоится в очереди и возвраты вызова DownloadDataAsync.
Разрешение DNS могло быть медленным?
Это выглядит немного странным мне.
Попытайтесь сохранить участника касательно WebClient, таким образом, Вы не уничтожаете его в конструкторе, возможно, он блокируется на клиенте. Расположите ()
ВОССТАНОВЛЕННЫЙ ПОСЛЕ УДАЛЕНИЯ: Как многие думают о блоке использования как, я делаю, я подтвердил, что он не связан.
Можно ли удалить блок использования, я думаю, что он ожидает для расположения webclient экземпляра.
Я сильно подозреваю, что это относится к избавлению от WebClient при тихом использовании его для асинхронного вызова.
Попытайтесь удалить оператор использования, и вызов Располагает в обработчике событий вместо этого. (Или только для тестирования, не волнуйтесь о расположении его вообще.
Если Вы могли бы отправить короткую, но полную программу, которая демонстрирует проблему, которая была бы действительно удобна.
А также избавление от чего-то, что возможно все еще выполняет асинхронный вызов, это было упомянуто другими людьми, я Настоятельно рекомендую против выполнения тяжелого материала как это в конструкторе формы.
Сделайте это в переопределении OnLoad вместо этого, где Вы также сможете проверить свойство DesignMode, которое поможет Вам избежать нескольких уровней ада с конструктором форм VS.
Вы хотите выполнить загрузку в другом потоке, рассматривать это как начальную точку.
По моему опыту, он блокирует поток при отладке проекта (запуск внутри Visual Studio) и при первом доступе к серверу.
При запуске скомпилированного exe блокировка не заметна.
Я только что протестировал то же самое в проекте WPF под VS2010, .NET 4.
Я загружаю файл с индикатором выполнения, чтобы показать процент выполнения с помощью WebClient.DownloadDataCompleted и т.д.
И, к моему удивлению, я обнаружил то же самое, о чем говорил @Dan: В отладчике он блокирует поток забавным образом. В отладке мой счетчик прогресса обновляется на 1%, затем некоторое время ничего не делает, а затем снова обновляется на 100%. (Отчеты Debug.WriteLn печатаются без проблем). И между этими двумя моментами пользовательский интерфейс застывает.
Но вне отладчика индикатор выполнения плавно перемещается от 0% до 100%, и пользовательский интерфейс никогда не замирает. Что и следовало ожидать.