- •К лабораторной работе 2 по ооп
- •Часть 1. Делегаты и события в языке с# Делегаты
- •Задание
- •События
- •1. Событие и обработчик в одном классе (источник является и приёмником)
- •2. Событие и обработчик в разных классах (источник отделён от приёмника)
- •3. Событие с объектом данных
- •Задание
- •Делегирование многих обработчиков (Реализация события со многими слушателями)
- •Интерфейс и класс нашего события, суперкласс классов источников нашего события, классы источника и приёмника нашего события
- •Часть 2. События в языке Java Делегирование одного обработчика
- •Задание
- •Часть 3. Потоки в языке с# Поток
- •Потоковые объекты
- •Задание
- •Часть 4. Потоки в языке Java Поток
- •Потоковые объекты
- •Задание
Задание
Выполнить приведённые программы с событиями. Модифицировать их в соответствии указаниями преподавателя.
Создать программу с одним источником и массивом приёмников. Обработчики приёмников должны выдать на консоль дополнительно к данным события также номер объекта источника и номер объекта приёмника.
Создать программу с массивом источников и одним приёмником. Обработчик приёмника должен выдать на консоль дополнительно к данным события также номер объекта источника и номер объекта приёмника.
Создать программу с массивом источников и массивом приёмников. Обработчики приёмников должны выдать на консоль дополнительно к данным события также номер объекта источника и номер объекта приёмника.
Создать программу, состоящую из источника и цепочки приёмников-источников, обеспечивающих передачу сообщений в соответствии с алгоритмом, указанным преподавателем.
Часть 3. Потоки в языке с# Поток
using System;
using System.Threading;
class TestThread
{
static void Main ()
{
// Создать объект типа TestThread
TestThread tT= new TestThread ();
// Создать поток
Thread t= new Thread (new ThreadStart(tT.SumC));
t.Start(); // Запустить объект
}
void SumC () // Потоковая функция
{
int a= 10, b= 14, c=0;
for(int i=a;i<b; i++)
{
Console.WriteLine ("i= "+ i);
c= c+i;
Thread.Sleep (10);
}
Console.WriteLine ("c= "+ c);
}
}
Потоковые объекты
using System;
using System.Threading;
class ThreadObject // Класс потокового объекта
{
int num; // Номер объекта
public ThreadObject (int N)
{
num= N;
// Создать поток с потоковой функцией SumC()
Thread t= new Thread (new ThreadStart(this.SumC));
t.Start (); // Запустить поток объекта
}
//Потоковая функция
void SumC ()
{
int a= 10, b= 14, c=0;
for(int i=a;i<b; i++)
{
Console.WriteLine ("num= = "+ num +"i= "+ i);
c= c+i;
Thread.Sleep(10);
}
Console.WriteLine("c= "+ c);
}
}
class TestThread
{
static void Main ()
{
//Создать первый потоковый объект и запустить его поток
ThreadObject tO1= new ThreadObject (1);
//Создать второй потоковый объект и запустить его поток
ThreadObject tO2= new ThreadObject (2);
}
}
Задание
Выполнить приведённые программы с потоками. Модифицировать их в соответствии указаниями преподавателя.
Часть 4. Потоки в языке Java Поток
public class TestThread implements Runnable
{
public TestThread()
{
Thread t= new Thread (this); // Создать поток
t.start ();
}
public static void main ( )
{
// Создать объект типа TestThread
TestThread tT= new TestThread ();
}
public void run () // Потоковая функция
{
int a= 10, b= 14, c=0;
for(int i=a;i<b; i++)
{
System.out.println ("i= "+ i);
c= c+i;
try
{
Thread.sleep (10);
}
catch(InterruptedException iE){}
}
System.out.println ("c= "+ c);
}
}
