Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 157, средняя оценка - 4.80
Antrix
43 / 43 / 8
Регистрация: 11.04.2010
Сообщений: 139
#1

"Нормальная" пауза... - C#

09.06.2010, 06:35. Просмотров 24565. Ответов 11
Метки нет (Все метки)

Здравствуйте... давно уже этот вопрос грызет, но толкового ответа нигде так и не нашел. Собственно, что интересует:
Как (и можно ли) сделать в приложении "нормальную" (простите за выражение) паузу? То есть, допустим, что у нас есть вот такой кусочек кода:
http://www.cyberforum.ru/csharp-net/thread861767.html

C#
1
2
3
label1.Text = "Перед паузой";
// Здесь пауза
label1.Text = "После паузы";
Но можно ли сделать паузу между этими двумя строчками кода без "второго" потока и вешания программы посредством System.Threading.Thread.Sleep?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2010, 06:35
Я подобрал для вас темы с готовыми решениями и ответами на вопрос "Нормальная" пауза... (C#):

Ошибка CS0019: Оператор "*" не может применяться к операндам типа "decimal" и "float"
Здравствуйте! Писал приложение и наткнулся на интересную ошибку (честно говоря,...

Переопределить операции "+" "=" "-" для экземпляров моего класса
Добрый день. Мне нужно переопределить операции "+" "=" "-" для экземпляров...

Десериализация json. Ожидается элемент "root" из пространства имен "". Обнаружен элемент "None"
Здравствуйте. Получаю от сервера ответ на запросы. В интернете нашел пример...

Оператор "*" не может применяться к операндам типа "type" и "type"
public vector module() { return new vector(x * x + y * y + z * z); } ...

Текстовый файл. строка с 3 "объектами" разделенные разделителем "," как обратиться к каждому из объектов?
Всем добрый день. Имеется текстовый файл. содержимое: более 31.000 строк....

11
DimPsu
5 / 5 / 2
Регистрация: 10.12.2009
Сообщений: 12
09.06.2010, 07:11 #2
А чем тебе Sleep не нравится? По-моему, хороший вариант.
0
MAcK
Комбайнёр
1570 / 668 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
09.06.2010, 09:20 #3
C#
1
2
3
4
5
6
7
int Counter = 0;
While (true)
{
  sleep(1);
  Application.DoEvent;
  if (Counter++ > 1000) break;
}
0
stalkersev
|____WTF!?____|
87 / 86 / 11
Регистрация: 01.06.2010
Сообщений: 227
09.06.2010, 11:55 #4
C#
1
System.Threading.Thread.Sleep(здесь пишешь время в миллисекундах);
0
Antrix
43 / 43 / 8
Регистрация: 11.04.2010
Сообщений: 139
09.06.2010, 16:47  [ТС] #5
Цитата Сообщение от DimPsu Посмотреть сообщение
А чем тебе Sleep не нравится? По-моему, хороший вариант.
Ну я же написал - "без "второго" потока и вешания программы посредством System.Threading.Thread.Sleep"

Цитата Сообщение от stalkersev Посмотреть сообщение
C#
1
System.Threading.Thread.Sleep(здесь пишешь время в миллисекундах);
То же самое.
0
HIMen
4249 / 1416 / 101
Регистрация: 12.04.2009
Сообщений: 2,346
09.06.2010, 16:48 #6
Используй таймер
1
stalkersev
|____WTF!?____|
87 / 86 / 11
Регистрация: 01.06.2010
Сообщений: 227
09.06.2010, 17:05 #7
<Ссылка на форум> почитай.
1
joker78rus
23 / 23 / 5
Регистрация: 04.10.2013
Сообщений: 46
13.10.2013, 19:10 #8
Вот такая пауза.... в моем случае System.Threading.Thread.Sleep(); не катит....

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
using System.Diagnostics;
......
 private void _pause (int value)
        {
            Stopwatch sw = new Stopwatch();
            sw.Start();
            while (sw.ElapsedMilliseconds < value)
                Application.DoEvents();
        }
 
// Вызов:
 
_pause(2000); // (в мили секундах)
7
depravity
19 / 8 / 7
Регистрация: 26.12.2013
Сообщений: 167
Завершенные тесты: 1
03.07.2015, 16:25 #9
joker78rus, Вы решили одну из важнейших загадок человечества, мой поклон.
0
kolorotur
Эксперт .NET
9917 / 8302 / 2037
Регистрация: 17.09.2011
Сообщений: 14,285
05.07.2015, 11:50 #10
Тема старая, но раз уж подняли, то вот так это делается в .NET 4.5+:
C#
1
2
3
label1.Text = "Перед паузой";
await Task.Delay(5000); // 5 секунд
label1.Text = "После паузы";
2
depravity
19 / 8 / 7
Регистрация: 26.12.2013
Сообщений: 167
Завершенные тесты: 1
05.07.2015, 12:37 #11
kolorotur, в VS 2013 попробовал - не получается. Там какой namespace надо подключить?
0
kolorotur
Эксперт .NET
9917 / 8302 / 2037
Регистрация: 17.09.2011
Сообщений: 14,285
05.07.2015, 13:03 #12
Цитата Сообщение от depravity Посмотреть сообщение
Там какой namespace надо подключить?
1. Установите целевой фреймворк проекта на .NET Framework 4.5 или выше
2. Подключите пространство System.Threading.Tasks
3. Добавьте в заголовок метода, в котором используется await слово async:
a). Если метод — обработчик события, то возвращаемый тип void:
C#
1
2
3
4
5
6
async void ButtonClick(object sender, EventArgs e)
{
   label1.Text = "Перед паузой";
   await Task.Delay(5000); // 5 секунд
   label1.Text = "После паузы";
}
б). Если метод не обработчик и возвращает void, то измените тип возвращаемого значения на Task:
C#
1
2
3
4
5
6
async Task ShowAndWait()
{
   label1.Text = "Перед паузой";
   await Task.Delay(5000); // 5 секунд
   label1.Text = "После паузы";
}
в). Если метод возвращает некий тип Т, то изменит тип возвращаемого значения на Task<T>:
C#
1
2
3
4
5
6
7
8
async Task<int> ShowAndWait()
{
   label1.Text = "Перед паузой";
   await Task.Delay(5000); // 5 секунд
   label1.Text = "После паузы";
 
   return 42;
}
1
05.07.2015, 13:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2015, 13:03
Привет! Вот еще темы с решениями:

LINQ: Невозможно преобразовать "лямбда-выражение" к типу "string", поскольку он не является делегатом
Здравствуйте. Делаю приложение с использованием Entity Framework. Все было...

SOCKS сервер для принятия данных с браузера. Что означают команды "GET", "POST"
Нужно сделать socks сервер. Создал TCP сервер, принимаю все данные с...

Программа для перевода в транслит выдает ошибку на "}" "Ссылка на объект не указывает на экземпляр объекта."
Вот код: if (radioButton6.Checked == true) ...

Из "нижнего" полигона надо вырезать всё, что перекрывается "верхним" полигоном
Задача такая. Есть полигон с дырками в векторном виде. Поверх него нарисован...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru