Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.94
Sendello
1 / 1 / 0
Регистрация: 01.03.2012
Сообщений: 52
#1

Таймер не запускается в отдельном потоке - C#

09.10.2012, 17:05. Просмотров 2376. Ответов 11
Метки нет (Все метки)

У меня есть поток, в котором в при определенных условиях должен запустится таймер, но он почему то не запускается.


Вот упрощенный код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 public void button2_Click(object sender, EventArgs e)
{
  Thread t = new Thread(potok);
  t.start();
}
public void Proverka()
{
 timer1.start();
}
 private void timer1_Tick(object sender, EventArgs e)
{
  date1 = date1.AddSeconds(1);
  textBox11.Text = date1.ToString("mm:ss");
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.10.2012, 17:05
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Таймер не запускается в отдельном потоке (C#):

ProgressBar в отдельном потоке
Кинул на форму бутонку прогрессБар и тот элемент с не выговариваемым названием...

Запустить метод в отдельном потоке
всем привет!) как запустить данный код в отдельном потоке, чтобы не зависала...

Выполнить код в отдельном потоке
Доброго времени суток уважаемые! Помогите пожалуйста разобраться с основами...

Использование WebClient в отдельном потоке
private void button2_Click(object sender, RoutedEventArgs e) { ...

Очередь сообщений в отдельном потоке
В продолжение темы http://www.cyberforum.ru/csharp-net/thread811472.html Мне...

отрисовка графики в отдельном потоке
Привет! Я пишу тетрис на C# с использованием встроенной в .NET графики. В...

11
Spectral-Owl
566 / 546 / 151
Регистрация: 29.06.2010
Сообщений: 1,572
Завершенные тесты: 1
09.10.2012, 17:15 #2
Цитата Сообщение от Sendello Посмотреть сообщение
C#
1
Thread t = new Thread(potok);
прости, а potok - он где?)
0
Sendello
1 / 1 / 0
Регистрация: 01.03.2012
Сообщений: 52
09.10.2012, 17:18  [ТС] #3
Ой простите не проверка там должна быть а поток, но проблема не в этом
0
Spectral-Owl
566 / 546 / 151
Регистрация: 29.06.2010
Сообщений: 1,572
Завершенные тесты: 1
09.10.2012, 17:29 #4
хм.. если WinForms, то возможно следует сделать
C#
1
timer1.Enabled=true;
далее, т.к. обращаешся ты из чёрт-какого потока к контролам формы, то возможно необходимо произвести возврат в основной поток:
C#
1
2
3
4
5
6
7
8
 private void timer1_Tick(object sender, EventArgs e)
{
  date1 = date1.AddSeconds(1);
  if (textBox11.InvokeRequired)  
     BeginInvoke(new MethodInvoker(() => textBox1.Text =date1.ToString("mm:ss")));
   else 
     textBox1.Text =date1.ToString("mm:ss");
}
ну и самое банальное, возможно у тебя событие timer1.onTick//или какое у него, так не помню// не подписано на метод timer1_Tick =)
1
Sendello
1 / 1 / 0
Регистрация: 01.03.2012
Сообщений: 52
09.10.2012, 17:34  [ТС] #5
Не помогло, проблема не с выводом инфы, так как таймер даже не стартует. Если убрать поток то таймер стартует.
0
Spectral-Owl
566 / 546 / 151
Регистрация: 29.06.2010
Сообщений: 1,572
Завершенные тесты: 1
09.10.2012, 17:48 #6
ну тогда предлагаю сделать так:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public void Proverka()
{
while(true)
{
try
{
 timer1.start();
 MessageBox.Show("Таймер запущен...");\\\Чуствую начнут окна сообщений часто=(
}
catch (Exception e)
{
MessageBox.Show(e.Message,"Ahtung!!!");
}
}
}
если появилось сообщение с ошибкой - ты поймёшь что же было не так. если выскочило сообщение что всё ок - то будем разбираться дальше)

Не по теме:

только возможно я с этим не помогу, скоро офф и появлюсь минимум послезавтра

0
Sendello
1 / 1 / 0
Регистрация: 01.03.2012
Сообщений: 52
09.10.2012, 18:03  [ТС] #7
Все ок, и таймер запустился....Только теперь еще больше не понятно... Или может он запускает таймер и сразу же убивает его вместе с потоком?
0
Sendello
1 / 1 / 0
Регистрация: 01.03.2012
Сообщений: 52
09.10.2012, 18:34  [ТС] #8
Да все так и есть. Когда поток завершается завершается и таймер. Подскажите как мне теперь запустить таймер?
0
jivot
304 / 200 / 44
Регистрация: 15.02.2012
Сообщений: 605
09.10.2012, 18:34 #9
если бы код был не "упрощеный" - было бы немного легче вам помочь
0
Sendello
1 / 1 / 0
Регистрация: 01.03.2012
Сообщений: 52
09.10.2012, 18:40  [ТС] #10
Цитата Сообщение от jivot Посмотреть сообщение
если бы код был не "упрощеный" - было бы немного легче вам помочь
Хм а в чем разница?

А как можно вернуть данные с потока?
0
jivot
304 / 200 / 44
Регистрация: 15.02.2012
Сообщений: 605
09.10.2012, 19:00 #11
Цитата Сообщение от Sendello Посмотреть сообщение
Хм а в чем разница?
если в вашем коде есть ошибка, но вы не знаете где она, то посредством "упрощений" вы можете ненароком её затереть ... плюс, код, который логически завершен и выполняет понятные действия, а не абстрактные манипуляции, легче разбирать

ну это все лирика

Цитата Сообщение от Sendello Посмотреть сообщение
А как можно вернуть данные с потока?
через любую переменную, видимую обоим потокам, например ... позаботившись о безопасности разумеется

http://www.rsdn.ru/article/dotnet/CSThreading1.xml

вот тут про это хорошо расписано
1
Sendello
1 / 1 / 0
Регистрация: 01.03.2012
Сообщений: 52
09.10.2012, 20:39  [ТС] #12
Цитата Сообщение от jivot Посмотреть сообщение
через любую переменную, видимую обоим потокам, например ... позаботившись о безопасности разумеется

http://www.rsdn.ru/article/dotnet/CSThreading1.xml

вот тут про это хорошо расписано
Спасибо большое за помощь, попробую через переменную.
0
09.10.2012, 20:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.10.2012, 20:39
Привет! Вот еще темы с решениями:

Как запустить метод в отдельном потоке?
есть метод string s = mac.termt(m, m.GetLength(0)).ToString(); он очень долго...

Сокеты, прослушка порта в отдельном потоке
Привет снова) Модерам: предыдущую тему можно удалить(там где про клиент и...

Пингование удаленного сервера в отдельном потоке
Добрый день господа. У меня к вам следующий вопрос. Целью моей является...

Рекурсивный поиск файлов в отдельном потоке
Подскажите как реализовать рекурсивный поиск файлов в потоке. Как реализовать...


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

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

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