Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
1 / 1 / 0
Регистрация: 09.01.2011
Сообщений: 37

Подскажите что не так?

30.01.2011, 01:20. Показов 1423. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проект c# Windows Forms App
Есть формочка. На ней лейбл статуса
Пишу код

C#
1
2
3
4
5
6
7
setStatus("Connecting...");
Thread.Sleep(2000);
setStatus("OK");
 
public void setStatus(string str){
            this.status_lable.Text = str;
}
Форма подвисает (что понятно) но Connecting... не выводится. Сразу OK
Почему так?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.01.2011, 01:20
Ответы с готовыми решениями:

Подскажите что же в коде не так?
Помогите, что же в коде не так?????????? void Update () { if (transform.position.x > 18) { speed = Random.Range(8f,12f); ...

Подскажите, что сделал не так
Извиняюсь, по ошибке второй раз забил свой вопрос. Модераторы, удалите пожалуйста эту тему

Directory.Move() выбивает исключение, подскажите что не так
Функция по перемещению директории выбивает ошибку, подскажите- что не так? static void DirectMove() { string...

11
MADE IN USSR
 Аватар для Товарищ
72 / 71 / 0
Регистрация: 01.06.2010
Сообщений: 203
30.01.2011, 02:22
перед
C#
1
setStatus("Connecting...");
попробуй поставить
C#
1
Thread.Sleep(2000);
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
30.01.2011, 02:53
У себя проверил. Всё работает. Попробуй "Перестроить решение".
0
1 / 1 / 0
Регистрация: 09.01.2011
Сообщений: 37
30.01.2011, 12:26  [ТС]
Странно. Пробовал перестроить. Поставил релиз вместо дебаг. Всеравно не выводит Connect... (
0
1 / 1 / 0
Регистрация: 31.07.2009
Сообщений: 26
30.01.2011, 13:41
Это происходит из-за того, что у тебя останавливается основной поток. попробуй через таймер например сделай (форма виснуть не будет).
0
 Аватар для Unril
826 / 717 / 110
Регистрация: 06.10.2010
Сообщений: 825
Записей в блоге: 1
30.01.2011, 16:20
Нужно вставить Application.DoEvents(); для того, чтобы дать лейблу перерисоваться.
C#
1
2
3
4
            label1.Text = "Connecting";
            Application.DoEvents();
            Thread.Sleep( 2000 );
            label1.Text = "Ok";
А вообще, останавливать рабочий поток в WinForms нехорошо.
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
31.01.2011, 09:07
Цитата Сообщение от Unril Посмотреть сообщение
Нужно вставить Application.DoEvents(); для того, чтобы дать лейблу перерисоваться.
C#
1
2
3
4
            label1.Text = "Connecting";
            Application.DoEvents();
            Thread.Sleep( 2000 );
            label1.Text = "Ok";
А вообще, останавливать рабочий поток в WinForms нехорошо.
Дык зачем тут Application.DoEvents(); если поток останавливается после изменения текста на Label?

zim32, выложи проект. Ещё раз говорю у меня всё работает, проблем не возникало. Или полностью код выложи. Может ты куда-то не туда сам код вставил? Хотя врятли.
0
 Аватар для Unril
826 / 717 / 110
Регистрация: 06.10.2010
Сообщений: 825
Записей в блоге: 1
31.01.2011, 11:14
Цитата Сообщение от Casper-SC Посмотреть сообщение
Дык зачем тут Application.DoEvents(); если поток останавливается после изменения текста на Label?
Цитата Сообщение от Casper-SC Посмотреть сообщение
чтобы дать лейблу перерисоваться.
А когда лейблу перерисовываться, если мы останавливаем главный поток на две секунды? Обновление будет происходить после выхода из метода. Про это даже в мсдн написано:
Если удалить из кода метод DoEvents, форма не будет обновляться, пока обработчик событий нажатия кнопки не завершит свое выполнение.
http://msdn.microsoft.com/ru-r... s.90).aspx
У меня, если что, этот код в обработчике нажатия кнопки был.
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
31.01.2011, 11:57
Цитата Сообщение от Casper-SC Посмотреть сообщение
Ещё раз говорю у меня всё работает, проблем не возникало.
Фантастика! Теперь не работает без DoEvent(). Ничего не понимаю, как у меня работало в прошлый раз, помню точно всё работало. Вообще ничего не понимаю. И точно помню, что задержка в 2 секунды была
0
1 / 1 / 0
Регистрация: 09.01.2011
Сообщений: 37
01.02.2011, 15:55  [ТС]
Цитата Сообщение от Casper-SC Посмотреть сообщение
Фантастика! Теперь не работает без DoEvent(). Ничего не понимаю, как у меня работало в прошлый раз, помню точно всё работало. Вообще ничего не понимаю. И точно помню, что задержка в 2 секунды была
Вот такие вот пироги ))

Добавлено через 3 минуты
Цитата Сообщение от Unril Посмотреть сообщение
А когда лейблу перерисовываться, если мы останавливаем главный поток на две секунды? Обновление будет происходить после выхода из метода. Про это даже в мсдн написано:
Просто я думал что при присваивании свойства Text, автоматом посылается сообщение в процедуру окна которая его обновляет, а затем происходит ThreadSleep.
0
 Аватар для Unril
826 / 717 / 110
Регистрация: 06.10.2010
Сообщений: 825
Записей в блоге: 1
01.02.2011, 16:07
Цитата Сообщение от zim32 Посмотреть сообщение
Просто я думал что при присваивании свойства Text, автоматом посылается сообщение в процедуру окна которая его обновляет, а затем происходит ThreadSleep.
Сообщение посылается, но обрабатывается оно уже в главном цикле приложения после выхода из метода.
При запуске Windows Form создается новая форма, которая затем будет ожидать события и обрабатывать их. Каждый раз при обработке события форма обрабатывает весь код, сопоставленный с этим событием. Все остальные события ожидают в очереди. Пока код обрабатывает событие, приложение не отвечает.
0
1 / 1 / 0
Регистрация: 09.01.2011
Сообщений: 37
01.02.2011, 16:31  [ТС]
Цитата Сообщение от Unril Посмотреть сообщение
Сообщение посылается, но обрабатывается оно уже в главном цикле приложения после выхода из метода.
Точно! Это как на с++ там в долгой процедуре обработки сообщения делается проверка на наличие в очереди сообщения и если сообщение есть то оно обрабатывалось.

Это то чем занимается DoEvents() я правильно понял?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.02.2011, 16:31
Помогаю со студенческими работами здесь

Подскажите пожалуйста, что не так сделал и как нужно написать правильно
Идея такова : даны уравнения прямых а1х+b1y=c1, a2x+b2y=c2, a3x+b3y=c3. Выяснить, какие из этих прямых параллельны, а какие - нет.Само по...

Выдаёт ошибку, пишет что слишком мало аргументов в функции Per, что не так, подскажите
#include <iostream> #include <stdio.h> using namespace std; int St (int x) { if (x==0) return 1; return St(x-1)*10;...

Подскажите что не так?
Класс #include <string> #include <fstream> #include <math.h> #include "dot.h" Dot::Dot() { x=0; y=0; ...

Hello) подскажите ,что ни так?
Это моя работа ,, но мне кажется ,что она смотрится как черновик,хотелось не темный фон,а светлые тона все не серьезные,обои картинки...

Что не так, подскажите?
Здравствуйте, делаю первые робкие шаги в программировании. Хотел сделать код с циклом обратного отсчета, который после каждого шага по...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru