Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.10.2012, 15:47   #1
123_
Пользователь
 
Регистрация: 10.04.2012
Сообщений: 12
По умолчанию Потоки

Добрый день,я пишу программу на C#,которая работает с потоком,и у меня возникла проблема:при нажатии на кнопку "старт" начинается отсчет времени,и эта эта кнопка меняет свой заголовок на "стоп",при нажатии на эту кнопку число которое выводится на кнопку должно обнулиться и отсчет должен остановиться,но проблема в том что число обнуляется но отсчет продолжается,также при выходе из программы вылезает исключение:System.ObjectDisposedExc eption,помогите решить эту проблему пожалуйста.
Вложения
Тип файла: rar first.rar (68.0 Кб, 8 просмотров)
123_ вне форума Ответить с цитированием
Старый 08.10.2012, 10:56   #2
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

Код:
public partial class MainForm:Form
	{
		int count = 0;

		Thread countingThread = null;

		public MainForm()
		{
			InitializeComponent();
		}

		private void WorkBtn_Click(object sender, EventArgs e)
		{

			if (countingThread != null)
			{
				countingThread.Abort();
				countingThread = null;
				return;
			}

			countingThread = new Thread(Timer);
			countingThread.IsBackground = true;
			countingThread.Start();
		}

		public void Timer()
		{
			count = 0;

			while (count < 100)
			{
				count ++;
				LabelCounter.Invoke((Action)delegate { this.LabelCounter.Text = count.ToString(); });
				Thread.Sleep(100);
			}
		}
	}
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery

Последний раз редактировалось kaljan775; 08.10.2012 в 11:13.
kaljan775 вне форума Ответить с цитированием
Старый 08.10.2012, 11:04   #3
Reskov
Форумчанин
 
Аватар для Reskov
 
Регистрация: 17.12.2008
Сообщений: 250
По умолчанию

я думаю причина в том что у вас
Код:
   private void WorkBtn_Click(object sender, EventArgs e)
        {
           
             Thread timer = new Thread(Timer);
             timer.Start();

            }
существует только в области видимости кнопки попробуйте вынести в один глобальный thread и еще в данном не исправленнном случае переменная count должна быть volatile
Reskov вне форума Ответить с цитированием
Старый 08.10.2012, 19:00   #4
123_
Пользователь
 
Регистрация: 10.04.2012
Сообщений: 12
По умолчанию

Всем спасибо!разобрался)
123_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Потоки. pinkiller Общие вопросы C/C++ 8 11.01.2012 21:15
потоки sergei64_89 Помощь студентам 2 20.10.2010 02:08
потоки tanek Помощь студентам 6 15.03.2010 21:42
потоки Владимир1988 Помощь студентам 0 08.02.2010 23:12