Главная страница

лабараторная работа. Теория_к_лабораторным. 1. Применение параллельных вычислений


Скачать 0.7 Mb.
Название1. Применение параллельных вычислений
Анкорлабараторная работа
Дата24.10.2021
Размер0.7 Mb.
Формат файлаdoc
Имя файлаТеория_к_лабораторным.doc
ТипДокументы
#254886
страница9 из 9
1   2   3   4   5   6   7   8   9
&& _competitor.CheckPoint == 0)

{

m_Semaphore2000.WaitOne();

try

{

//Обновление элементов управления в потоке пользовательского интерфейса

textBoxDispatchingStatistics.Invoke(new MethodInvoker(() =>

{

textBoxDispatchingStatistics.Text = textBoxDispatchingStatistics.Text

+ "CP-2000: " + (_competitor.Index + 1).ToString()

+ " ожидает." + Environment.NewLine;

}));

//отметка о прохождении семафора 1

_competitor.CheckPoint = 1;

Thread.Sleep(2000);

//Обновление элементов управления в потоке пользовательского интерфейса

textBoxDispatchingStatistics.Invoke(new MethodInvoker(() =>

{

textBoxDispatchingStatistics.Text = textBoxDispatchingStatistics.Text

+ "CP-2000: " + (_competitor.Index + 1).ToString()

+ " прошел." + Environment.NewLine;

}));

}

finally

{ //Гарантированное 'освобождение' семафора

m_Semaphore2000.Release();

}

}

//Вхождение в зону семафора 2

if (_bar.Value > 7000 && _competitor.CheckPoint == 1)

{

m_Semaphore7000.WaitOne();

try

{

//Обновление элементов управления в потоке пользовательского интерфейса

textBoxDispatchingStatistics.Invoke(new MethodInvoker(() =>

{

textBoxDispatchingStatistics.Text = textBoxDispatchingStatistics.Text

+ "CP-7000: " + (_competitor.Index + 1).ToString()

+ " ожидает." + Environment.NewLine;

}));

//отметка о прохождении семафора 1

_competitor.CheckPoint = 2;

Thread.Sleep(2000);

//Обновление элементов управления в потоке пользовательского интерфейса

textBoxDispatchingStatistics.Invoke(new MethodInvoker(() =>

{

textBoxDispatchingStatistics.Text = textBoxDispatchingStatistics.Text

+ "CP-7000: " + (_competitor.Index + 1).ToString()

+ " прошел." + Environment.NewLine;

}));

}

finally

{ //Гарантированное 'освобождение' семафора

m_Semaphore7000.Release();

}

}

}

//Отметка о том, что поток 'финишировал'

textBoxDispatchingStatistics.Invoke(new MethodInvoker(() =>

{

textBoxDispatchingStatistics.Text = textBoxDispatchingStatistics.Text

+ (_competitor.Index + 1).ToString()

+ " финишировал." + Environment.NewLine;

}));

}
1   2   3   4   5   6   7   8   9


написать администратору сайта