Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Этап 3. Разработка события ev и уведомления






 

Включим в класс Ball обычного объекта событие ev и уведомление, сигнализирующее об очередном цикле выполнения потока. Это событие и уведомление обрабатывается функцией HandlerEv или update() класса Balls, что будет использовано при перерисовке шаров в области клиента прикладного окна на четвёртом этапе. На рис. 5.3.3.1 и в примерах 5.3.3.1 и 5.3.3.2 представлены диаграмма классов третьего этапа и программы, реализующие её.

 

Рис. 5.3.3.1. Диаграмма классов Balls–приложения третьего этапа

 

Пример 5.3.3.1. Реализация третьего этапа разработки Balls–приложения.

////////////////////

// С# File BallsCs3.cs

// Файл BallsCs3.cs полностью включает файл BallsCs2.cs, дополнив

// его объявлением события ev в классе Ball и функцией HandlerEv

// класса Balls, обеспечивающей обработку этого события.

// Изменения файла BallsCs2.cs выделены жирным шрифтом.

...

//-------------------------------------

delegate void delEv (); // Объявление типа delEv делегата события ev

class Ball

{

public event delEv ev; // Объявление события ev

...

//---------------

void BallFunc () // Выполнить поток

{

int n= 0;

while (life)

{

Console.Write (" Объект {0}", num.ToString ());

Console.WriteLine (" n= {0}", n.ToString ());

n++;

if (ev! = null) // Если событие активизировано, то

{

Console.WriteLine (" Event");

ev (); //свершить событие

}

Thread.Sleep (10);

}

Console.Write (" Объект {0}", num.ToString ());

Console.WriteLine (" завершён");

}

};

//-------------------------------------

class Balls // Класс потоковых объектов

{

Ball [] pBall;

 

public void HandlerEv () // Обработчик события ev

{

Console.WriteLine (" HandlerEv");

}

 

public Balls () // Конструктор

{

pBall= new Ball [2];

for (int i= 0; i < 2; i++)

{

pBall[i]=new Ball (i);

pBall[i].ev+= new delEv(HandlerEv); // Добавить

}

Start ();

}

...

}

class BallsCs3

{

static void Main (string[] args)

{

Balls pBalls= new Balls (); // Создать объект класса Balls

Console.WriteLine(" Объекты функционируют");

Thread.Sleep (20); // Объект функционирует 20 мс

pBalls.Suspend (); // Приостановить функционирование

}

}

Результат:

Объекты функционируют

Объект 0 n= 0

Event

HandlerEv

Объект 1 n= 0

Event

HandlerEv

Объект 0 n= 1

Event

HandlerEv

Объект 1 n= 1

Event

HandlerEv

*/

 

Пример 5.3.3.2. Реализация третьего этапа разработки Balls–приложения на языке Java.

 

package BallsCj3;

////////////////////

//C# File BallsCj3

import java.util.*;






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.