Выполнение метода в отдельном потоке без await/async - C#
Формулировка задачи:
В Пытался по разному, но как ни крути прогресс баг не появляется, наверно блочиться UI-поток(((
К примеру в работает, но как то некрасиво получается с эстетической точки зрения. Как то можно это громоздкое выражение заменить более аккуратным?
десктопном WPF проекте с .Net 4.0
необходимо сделать так:private void updateNowButton_Click(object sender, RoutedEventArgs e) { ProgressBar1_IsIndeterminateUpdate.Visibility = Visibility.Visible; //здесь вызываем метод длительного решения задачи ProgressBar1_IsIndeterminateUpdate.Visibility = Visibility.Collapsed; }
Windows Phone 8.1 приложении с .Net 4.5
я делал так и оно там работало.
Нашел ответ, получилось вот так:
private void startBar_Click(object sender, RoutedEventArgs e) { ProgressBar1.Visibility = Visibility.Visible; Task<Boolean>.Factory.StartNew(() => { getMethod("all"); Thread.Sleep(5 * 1000); return true; }).ContinueWith(t => { if (t.Result) { //метод отработал ProgressBar1.Visibility = Visibility.Collapsed; } }, TaskScheduler.FromCurrentSynchronizationContext()); //ProgressBar1.Visibility = Visibility.Collapsed; }
Решение задачи: «Выполнение метода в отдельном потоке без await/async»
textual
Листинг программы
//Capture the thread thread = Thread.CurrentThread; //потом //Cancel the task by aborting the thread thread.Abort();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д