Создание потока с помощью Visual C#

Переводы статьи Переводы статьи
Код статьи: 815804 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

Можно создавать многопоточные приложения Microsoft Visual C#.NET или в Microsoft Visual C#. В данной статье описывается, как простое приложение Visual C# можно создавать и управлять потоками.

Требования

В следующем списке представлены рекомендуемого оборудования, программного обеспечения, сетевой инфраструктуры и пакетов обновления, необходимо:
  • Microsoft Windows 2000, Microsoft Windows XP или Microsoft Windows Server 2003
  • Microsoft Visual C#.NET или Microsoft Visual C# 2005
В данной статье предполагается, что вы знакомы со следующими разделы:
  • Программирования Visual C#
  • Visual Studio.NET интегрированной среды разработки (IDE) или интегрированной среды разработки Visual Studio 2005

Создание приложения Visual C# с потоками

  1. Запустите Microsoft Visual Studio.NET, Microsoft Visual Studio 2005 или Microsoft Visual C# 2005 Express Edition.
  2. Создание нового проекта приложения Windows Visual C# с именем ThreadWinApp.
  3. Добавить Кнопка элемент управления в форму. По по умолчанию, данная кнопка называется Button1.
  4. Добавить Компонент ProgressBar компонент в форму. По умолчанию имя индикатора ProgressBar1.
  5. Щелкните правой кнопкой мыши форму и нажмите кнопку Представление Код.
  6. В начало файла добавьте следующий оператор:
    using System.Threading;
  7. Добавьте следующие строки Нажмите кнопку обработчик событияButton1:
    private void button1_Click(object sender, System.EventArgs e)
    {
    	MessageBox.Show("This is the main thread");
    }
  8. Добавьте следующую переменную для Форма Form1 класс:
    private Thread trd;
    
  9. Добавьте следующий метод Форма Form1 класс:
    private void ThreadTask()
    {
    	int stp;
    	int newval;
    	Random rnd=new Random();
    
    	while(true)
    	{
    		stp=this.progressBar1.Step*rnd.Next(-1,2);
    		newval = this.progressBar1.Value + stp;
    
    		if (newval > this.progressBar1.Maximum)
    			newval = this.progressBar1.Maximum;
    		else if (newval < this.progressBar1.Minimum)
    			newval = this.progressBar1.Minimum;
    		
    		this.progressBar1.Value = newval;
    
    		Thread.Sleep(100);
    	}
    }
    Примечание Это код, который лежит в основе потока. Данный пример кода является бесконечный цикл, случайным образом увеличивает или уменьшает значениеProgressBar1, а затем ожидает в течение 100 миллисекунд, прежде чем он продолжается.
  10. Добавьте следующие строки Загрузка обработчик события Форма Form1. Этот код создает новый поток, делает поток фоновым потоком, а затем запускает поток.
    private void Form1_Load(object sender, System.EventArgs e)
    {
    	Thread trd = new Thread(new ThreadStart(this.ThreadTask));
    	trd.IsBackground = true;
    	trd.Start();
    }

Убедитесь, что он работает

  1. Построение и запуск приложения. Обратите внимание, что значениеProgressBar1 Изменение случайным образом. Это новый поток в операция.
  2. Чтобы продемонстрировать, что основной поток не зависит от поток, изменяющий значения ProgressBar1, нажмите кнопку кнопки в форме. Появится диалоговое окно со следующим сообщением об ошибке:
    This is the main thread
Время ожидания ввода. Обратите внимание, что значение ProgressBar1 будет продолжено.

Разрешение вопросов:

В более сложных приложений убедитесь, что при синхронизации несколько потоков при доступе к общим переменным. Для получения дополнительных сведений см. очередь Блокировка инструкции и см. также в Visual C#.NET Справочной документации.

Ссылки

Для получения дополнительных сведений посетите следующий веб-узел корпорации Майкрософт или.NET Framework SDK документации:
Поток" Класс"
http://msdn2.Microsoft.com/en-us/library/System.Threading.Thread (vs.71) .aspx

Свойства

Код статьи: 815804 - Последний отзыв: 23 сентября 2011 г. - Revision: 5.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# 2005 Express Edition
Ключевые слова: 
kbnamespace kbthreadsync kbthread kbhowtomaster kbmt KB815804 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:815804

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com