Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Динамические массивы Windows Forms. Потоки. (Лекция 6)

Содержание

Обобщенные типы Обобщенные типы - это типы с параметрами. Часть системы типов .NET Framework, которая позволяет определять тип.
Лекция 6: Динамические массивы Windows Forms Потоки 1 Обобщенные  типы Обобщенные типы - это типы с параметрами. Часть системы public class CacheShirt {  private Shirt shirt;   public void Синтаксис Generic-типовКласс Gen имеет два члена типа T и U. Код, использующий Применение обобщенийДля использования обобщений нужно указать его тип.// Add two strings using Обобщенные типы (Generic Types)Преимущества:производительность; вместо использования объектов можно использовать класс List из Преимущества:безопасность типов:например, когда в классе ArrayList сохраняются объекты, то в коллекцию могут Использование ограниченийОграничения — позволяют определить требования к типам, которыми разрешено заменять обобщения // класс обобщения может использоваться только типами, // реализующими интерфейс IComparableclass CompGenwhere Динамические  массивыДинамическим называется массив, размер которого может меняться во время исполнения программы. Библиотека .NET Framework содержит большой набор классов-коллекций, которые используются при работе В версиях 1.x было определено небольшое число строго типизированных коллекций в public interface ICollection : IEnumerable { int Count {get;} 		- число элементов public interface IList : ICollection, IEnumerable {	object this[ int index ] {get; Обобщенный интерфейс ICollectionpublic interfaceICollection : IEnumerable, IEnumerable{	int Count { get; }	bool Следующие обобщенные интерфейсы определены в пространстве имен System.Collections.Generic.public interface IEnumerable : Классы-коллекции из пространства имен System.Collections Классы-коллекции из пространства имен System.Collections.Specialized Обобщенные классы Queue и Stack Обобщенные классы List и LinkedList Обобщенные классы List и LinkedList Классы-словари (хэш-таблицы) используются для работы с множеством пар . В паре ключ В необобщенных коллекциях-словарях каждый элемент (пара ключ-значение) хранится в объекте DictionaryEntry. Интерфейс IDictionary реализуют классы:public interface IDictionary : ICollection, IEnumerable { bool public interface IDictionary < TKey,TValue> : 		ICollection < KeyValuePair < TKey,TValue>>, 		IEnumerable Хэш-функция используется для быстрой генерации числа (hash code), отвечающего значению объекта. По Классы-словари из пространства имен System.Collections Классы-словари из пространства имен System.Collections.Specialized Обобщенные классы-словари Начиная с версии 3.5 .NET Framework поддерживается неупорядоченная коллекция из несовпадающих using System;using System.Collections.Generic;namespace ConsoleApplication1{ class Program{  static void Main(){ Введение в разработку форм для Windows Выбор между формами Windows Forms и веб-формамиВыбор нужной технологию на основе назначения Инструменты Visual Studio для разработки приложений Windows Визуальные конструкторы для Windows Forms Архитектура Windows FormsSystem.Drawingдоступ к базовой функциональности графики GDI+,более совершенная функциональность предоставляется в Задание свойств форм Изменение внешнего вида и поведения формыУстановка заголовка формы (свойство Text)Установка типа границы Настройка стартовой формыСтартовая форма — это форма, которая при выполнении приложения загружается Обработка событий формыСобытия Реализация обработчика события загрузки формыprivate void Form1_Load(object sender, EventArgs e) Добавление элементов управления на форму Привязка элемента управления к формеПривязкаОпределяет, какие края элемента управления не меняют позицию Событийная модель в .NET FrameworkButton1this.button1.Click += new System.EventHandler(this.button1_Click);private void button1_Click(object sender, System.EventArgs e)		{		…		} public delegate void EventHandler				(object sender, AlarmEventArgs e);Что такое делегаты?ДелегатПривязывает события к методам Как создавать обработчики событийprivate void button1_Click(object sender, 								System.EventArgs e){		MessageBox.Show( Как динамически добавлять и удалять обработчики событийДля динамического связывания события (имя события Элементы управления, отображающие списокListBox, ComboBox, CheckedListBox. отличаются внешним видом и функциональными возможностями, Элементы управления, отображающие списокДля добавления элемента используется метод Items.AddДля добавления несколько элементов Что такое объект Graphics?Объект Graphics :Предоставляет холст, на который выводится информацияПредоставляет методы Создание перьев, кистей и шрифтов Pen myPen = new Pen(Color.Blue);Font myFont = Рисование линий и фигурСоздайте объект Graphics вызовом методаSystem.Windows.Forms.Control.CreateGraphics.Создайте объект Pen.Вызовите член класса Настройка перьевДля рисования пунктирной линии создайте экземпляр класса Реп и присвойте свойству Заливка фигурПрименяются методы Fill. требуют экземпляр класса Brush.Класс Brush — абстрактный, поэтому Введение в многопоточное программирование МногопоточностьПотоки выполнения (threads of execution, нити, треды, потоки, легковесные процессы) - параллельно выполняющиеся потоки управления в адресном пространстве одного процесса.Многопоточность Потоки выполнения и процессыРазличные процессы выполняются в разных адресных пространствах.Как локальные, так и глобальные переменные процессов являются «собственными».Различные потоки Почему используются потоки выполнения ? Для использования технических возможностей многопроцессорных систем при сложных вычислениях;Отдельные потоки выполнения для Проблемы при использовании потоков выполненияРазделяемые ресурсы;Взаимодействие между потоками выполнения;Чрезмерное использование многопоточности отнимает using System.Threading;...ThreadStart ts = new ThreadStart(myMethod);Thread p1 = new Thread(ts);p1.Name =
Слайды презентации

Слайд 2 Обобщенные типы
Обобщенные типы - это типы с параметрами.

Обобщенные типы Обобщенные типы - это типы с параметрами. Часть системы


Часть системы типов .NET Framework, которая позволяет определять тип.


Слайд 3 public class CacheShirt {
private Shirt shirt;

public class CacheShirt { private Shirt shirt;  public void add(Shirt


public void add(Shirt shirt){

this.shirt = shirt;
}

public Shirt get(){
return this.shirt;
}
}

public class CacheString {
private string message = "";
public void add(string message){
this.message = message;
}
public string get(){
return this.message;
}
}

Простые классы Cache и Generic-класс Cache

public class CacheAny {

private T t;

public void add(T t){
this.t = t;
}

public T get(){
return this.t;
}
}



Слайд 4 Синтаксис Generic-типов
Класс Gen имеет два члена типа T

Синтаксис Generic-типовКласс Gen имеет два члена типа T и U. Код,

и U.
Код, использующий этот класс, определит типы для

T и U. В зависимости от того, как класс Gen используется в коде, могут иметь тип string, int, пользовательский тип или другую их комбинацию.

class Gen
{
public T t;
public U u;
public Gen(T _t, U _u)
{
t = _t;
u = _u;
}
}


Слайд 5 Применение обобщений
Для использования обобщений нужно указать его тип.

//

Применение обобщенийДля использования обобщений нужно указать его тип.// Add two strings

Add two strings using the Gen class

Gen ga

= new Gen("Hello, ", "World!");
Console.WriteLine(ga.t + ga.u);

// Add a double and an int using the Gen class

Gen gb = new Gen(10.125, 2005);
Console.WriteLine(gb.t + gb.u);


Слайд 6 Обобщенные типы (Generic Types)
Преимущества:
производительность;
вместо использования объектов можно

Обобщенные типы (Generic Types)Преимущества:производительность; вместо использования объектов можно использовать класс List

использовать класс List из пространства имен System.Collection.Generic, который позволяет

определить тип элемента при создании коллекции.

List list = new List();
list.Add(44);//нет упаковки – элементы
//сохраняются в List
int il=list[0];// распаковка не нужна
foreach (int i2 in list)
{ Console.WriteLine(i2);
}


Слайд 7 Преимущества:
безопасность типов:
например, когда в классе ArrayList сохраняются объекты,

Преимущества:безопасность типов:например, когда в классе ArrayList сохраняются объекты, то в коллекцию

то в коллекцию могут быть вставлены объекты различных типов.


ArrayList list = new ArrayList();
list.Add(44); // вставка целого
list.Add("mystring"); // вставка строки
list.Add(new MyClass ()) ; // вставка объекта

foreach (int i in list) {
Console.WriteLine(i);
}// возникнет ошибка во время выполнения!!!

List list = new List();
list.Add(44) ;
list.Add("mystring"); // ошибка компиляции
list.Add(new MyClass()); // ошибка компиляции


Слайд 8 Использование ограничений
Ограничения — позволяют определить требования к типам,

Использование ограниченийОграничения — позволяют определить требования к типам, которыми разрешено заменять

которыми разрешено заменять обобщения в коде.
Обобщения поддерживают четыре

типа ограничений:
По интерфейсу.
По базовому классу.
По конструктору.
По ссылочному или значимому типу.
Для применения ограничений к обобщению используется секция where.

Слайд 9 // класс обобщения может использоваться только типами,
//

// класс обобщения может использоваться только типами, // реализующими интерфейс IComparableclass

реализующими интерфейс IComparable
class CompGen
where T : IComparable
{
public T t1;
public

T t2;
public CompGen(T _t1, T _t2)
{
t1 = _t1;
t2 = _t2;
}
public T Max()
{
if (t2.CompareTo(t1) < 0)
return t1;
else
return t2;
}
}


Слайд 10 Динамические массивы
Динамическим называется массив, размер которого может меняться

Динамические массивыДинамическим называется массив, размер которого может меняться во время исполнения программы.

во время исполнения программы.


Слайд 11 Библиотека .NET Framework содержит большой набор классов-коллекций,

Библиотека .NET Framework содержит большой набор классов-коллекций, которые используются при

которые используются при работе с наборами элементов.
Классы-коллекции из

пространства имен System.Collections поддерживают слабо типизированные коллекции, элементы которых имеют тип System.Object. Эти коллекции поддерживаются всеми версиями .NET Framework, начиная с 1.0.
В версиях .NET Framework 2.x и выше в пространстве имен System.Collections.Generic определены интерфейсы и классы обобщенных коллекций, которые дают возможность создавать строго типизированные коллекции.

Классы-коллекции


Слайд 12 В версиях 1.x было определено небольшое число

В версиях 1.x было определено небольшое число строго типизированных коллекций

строго типизированных коллекций в пространстве имен System.Collection.Specialized ,
а

в пространстве имен System.Collections определены абстрактные классы, которые можно было использовать как базовые для создания пользовательских типизированных (strong typed) коллекций.
CollectionBase : IList, ICollection, IEnumerable
DictionaryBase : IDictionary, ICollection, IEnumerable
ReadOnlyCollectionBase : ICollection, IEnumerable
NameObjectCollectionBase : ICollection, IEnumerable, ISerializable, IDeserializationCallback
В версиях 2.x и выше определены обобщенные классы-коллекций в пространстве имен System.Collections.Generic – это прямые аналоги обычных типов-коллекций.

Классы-коллекции


Слайд 13 public interface ICollection : IEnumerable {
int Count

public interface ICollection : IEnumerable { int Count {get;} 		- число

{get;} - число элементов в коллекции
bool IsSynchronized {get;}

- информация о том, является ли доступ синхронизированным ( thread-safe)
object SyncRoot {get;} - дает доступ к объекту синхронизации
void CopyTo( Array array, int index );
- копирует элементы коллекции в массив Array
...
}

public interface ICloneable {
object Clone(); - создает новый объект–копию
}

Интерфейс ICollection

Интерфейс ICollection реализуют все необобщенные и некоторые обобщенные классы-коллекции


Слайд 14 public interface IList : ICollection, IEnumerable {
object this[

public interface IList : ICollection, IEnumerable {	object this[ int index ]

int index ] {get; set;}
bool IsFixedSize {get;}
bool IsReadOnly {get;}


int Add( object value );
void Clear();
bool Contains( object value );
int IndexOf( object value );
void Insert( int index, object value );
void Remove( object value );
void RemoveAt( int index );
}

В коллекции, реализующей интерфейс IList:
определена операция индексирования с целым индексом;
в коллекцию можно вставлять элементы.

IList реализован в коллекциях, к элементам которых можно обращаться по индексу, в коллекцию можно добавлять элементы (реализован в ArrayList).

Интерфейс IList


Слайд 15 Обобщенный интерфейс ICollection
public interface
ICollection : IEnumerable, IEnumerable
{ int

Обобщенный интерфейс ICollectionpublic interfaceICollection : IEnumerable, IEnumerable{	int Count { get;

Count { get; }
bool IsReadOnly { get; }
void Add

(T item);
void Clear ();
bool Contains ( T item);
void CopyTo (T[] array, int arrayIndex);
boolean Remove ( T item);
}

Обобщенный интерфейс IList

public interface
IList : ICollection, IEnumerable, IEnumerable
{ T this [int index] { get; set; }
int IndexOf (T item);
void Insert (int index, T item);
void RemoveAt (int index);
}

Интерфейс ICollection и IList


Слайд 16 Следующие обобщенные интерфейсы определены в пространстве имен

Следующие обобщенные интерфейсы определены в пространстве имен System.Collections.Generic.public interface IEnumerable

System.Collections.Generic.
public interface IEnumerable : IEnumerable
{ IEnumerator GetEnumerator ();}

public interface

IEnumerator : IDisposable, IEnumerator
{ T Current { get; } }

public interface IEnumerator {
object Current {get;}
bool MoveNext();
void Reset();
}

public interface IEnumerable {
IEnumerator GetEnumerator();
}

Следующие обычные(необобщенные) интерфейсы определены в пространстве имен System.Collections.

Интерфейсы для итераторов


Слайд 17 Классы-коллекции из пространства имен System.Collections

Классы-коллекции из пространства имен System.Collections

Слайд 18 Классы-коллекции из пространства имен System.Collections.Specialized

Классы-коллекции из пространства имен System.Collections.Specialized

Слайд 19 Обобщенные классы Queue и Stack

Обобщенные классы Queue и Stack

Слайд 20 Обобщенные классы List и LinkedList

Обобщенные классы List и LinkedList

Слайд 21 Обобщенные классы List и LinkedList

Обобщенные классы List и LinkedList

Слайд 22 Классы-словари (хэш-таблицы) используются для работы с множеством пар

Классы-словари (хэш-таблицы) используются для работы с множеством пар . В паре

.
В паре ключ обеспечивает

косвенную ссылку на данные (значение) :
ключ не может иметь значение null, value может иметь значение null;
коллекция не может содержать две пары с одинаковым ключом.
С помощью хэш-функции ключ преобразуется в целочисленное значение (хэш-код) из некоторого диапазона 0, ... N-1. Хэш-код используется как индекс в таблице (hash table), в которой хранятся прямые или косвенные ссылки на данные (значения).
Классы-словари реализуют интерфейсы IDictionary или IDictionary .

Классы-словари (хэш-таблицы)


Слайд 23 В необобщенных коллекциях-словарях каждый элемент (пара ключ-значение)

В необобщенных коллекциях-словарях каждый элемент (пара ключ-значение) хранится в объекте

хранится в объекте DictionaryEntry.
public struct DictionaryEntry {
public

DictionaryEntry( object key, object value );
public object Key {get; set;}
public object Value {get; set;}
}

В обобщенных коллекциях-словарях каждый элемент (пара ключ-значение) хранится в объекте KeyValuePair < TKey,TValue>.

public struct KeyValuePair < TKey,TValue>
{ public KeyValuePair ( TKey key, TValue value );
public TKey Key { get; }
public TValue Value { get; }
}

Структуры для элементов коллекций


Слайд 24 Интерфейс IDictionary реализуют классы:
public interface IDictionary :

Интерфейс IDictionary реализуют классы:public interface IDictionary : ICollection, IEnumerable {

ICollection, IEnumerable {
bool IsFixedSize {get;}
bool IsReadOnly {get;}

object this[ object key] {get; set;}
ICollection Keys {get;}
ICollection Values {get;}
void Add ( object key, object value);
void Clear();
void Remove( object key );
bool Contains ( object key );
IDictionaryEnumerator GetEnumerator();
}

Интерфейс IDictionary

Hashtable
HybridDictionary
ListDictionary.

DictionaryBase
SortedList


Слайд 25 public interface IDictionary < TKey,TValue> :
ICollection

public interface IDictionary < TKey,TValue> : 		ICollection < KeyValuePair < TKey,TValue>>,

KeyValuePair < TKey,TValue>>,
IEnumerable < KeyValuePair < TKey,TValue>>,
IEnumerable


{ TValue this [ TKey key];
ICollection Keys { get; }
ICollection Values { get; }
void Add ( TKey key, TValue value);
bool ContainsKey ( TKey key);
bool Remove ( TKey key);
bool TryGetValue (TKey key, out TValue value);
}

Интерфейс IDictionary


Слайд 26 Хэш-функция используется для быстрой генерации числа (hash code),

Хэш-функция используется для быстрой генерации числа (hash code), отвечающего значению объекта.

отвечающего значению объекта. По умолчанию используется функция GetHashCode(). Для

корректной работы классов-словарей для хэш-функции GetHashCode() должно быть выполнено:
для двух совпадающих объектов одного и того же типа хэш-функция должна возвращать одно и тоже значение;
реализация GetHashCode() не должна бросать исключения;
если в производном классе переопределен метод GetHashCode(), в нем также должен быть переопределен метод Equals() так, чтобы два равных объекта имели одно и то же значение хэш-кода.
Метод класса Object может использоваться как хэш-функция, если равенство объектов понимается как равенство ссылок.
public virtual int GetHashCode();
Реализация GetHashCode() из класса String возвращает уникальный хэш-код для каждого значения string.

Хэш-функция


Слайд 27 Классы-словари из пространства имен System.Collections

Классы-словари из пространства имен System.Collections

Слайд 28 Классы-словари из пространства имен System.Collections.Specialized

Классы-словари из пространства имен System.Collections.Specialized

Слайд 29 Обобщенные классы-словари

Обобщенные классы-словари

Слайд 30 Начиная с версии 3.5 .NET Framework поддерживается

Начиная с версии 3.5 .NET Framework поддерживается неупорядоченная коллекция из

неупорядоченная коллекция из несовпадающих элементов
public class HashSet : ICollection,

IEnumerable,
IEnumerable, ISerializable, IDeserializationCallback

Методы класса позволяют выполнять быстрые операции объединения, пересечения, проверки совпадения двух коллекций.

public bool SetEquals( IEnumerable other ); // true, если
// коллекции совпадают;
publi bool Overlaps( IEnumerable other ); // true, если
// в коллекциях есть хотя бы один совпадающий элемент;
public void ExceptWith( IEnumerable other ); // удаляет из
// коллекции все элементы, которые есть в другой коллекции;
public void UnionWith( IEnumerable other ); // добавляет в
// коллекцию элементы из другой коллекции (только несовпадяающие);
public void IntersectWith( IEnumerable other ); // оставляет в
// коллекции только элементы, которые есть и в другой коллекции;

Коллекция HashSet


Слайд 31 using System;
using System.Collections.Generic;
namespace ConsoleApplication1{
class Program{
static

using System;using System.Collections.Generic;namespace ConsoleApplication1{ class Program{ static void Main(){  //

void Main(){
// Создадим два множества

SortedSet ss = new SortedSet();
SortedSet ss1 = new SortedSet();
ss.Add('A'); ss.Add('B'); ss.Add('C');
ss.Add('Z');
ShowColl(ss, "Первая коллекция: ");
ss1.Add('X'); ss1.Add('Y'); ss1.Add('Z');
ShowColl(ss1, "Вторая коллекция");
ss.UnionWith(ss1);
ShowColl(ss,"Объединение множеств:");
ss.ExceptWith(ss1);
ShowColl(ss, "Вычитание множеств");
//Сравнение множеств???
if (CmpSortedSet)
Console.WriteLine("Мн-во ss = мн-ву ss1 ");
else
Console.WriteLine(" Мн-во ss != мн-ву ss1");
}

Работа с итератором

static void ShowColl
(SortedSet ss, string s){
Console.WriteLine(s);
foreach (char ch in ss)
Console.Write(ch + " ");
Console.WriteLine("\n");
}

bool CmpSortedSet(SortedSet a, SortedSet b){
if (a == b) return true;
if ((a == null) || (b == null) || (a.Count != b.Count))
return false;
SortedSet.Enumerator
e1 = a.GetEnumerator(),
e2 = b.GetEnumerator();
while (e1.MoveNext() && e2.MoveNext())
if (e1.Current != e2.Current)
return false;
return true;
}


Слайд 32 Введение в разработку форм для Windows

Введение в разработку форм для Windows

Слайд 33 Выбор между формами Windows Forms и веб-формами
Выбор нужной

Выбор между формами Windows Forms и веб-формамиВыбор нужной технологию на основе

технологию на основе назначения приложения
Пример.
при создании веб-узла электронной торговли

с общим доступом к нему в Интернете целесообразно разрабатывать приложение с помощью страниц с веб-формами.
при построении интенсивно работающего быстродействующего приложения, для которого необходимо использовать все функциональные возможности клиентского компьютера (например, офисного приложения) лучше пользоваться формами Windows Forms.

Слайд 34 Инструменты Visual Studio для разработки приложений Windows
Визуальные

Инструменты Visual Studio для разработки приложений Windows Визуальные конструкторы для Windows

конструкторы для Windows Forms с элементами управления для перетаскивания.


Визуальные конструкторы для Windows Presentation Foundation.
Оптимизированные редакторы кода, включающие в себя завершение операторов, проверку синтаксиса и другие возможности IntelliSense.
Встроенные средства компиляции и отладки.
Средства управления проектом, позволяющие создавать и управлять файлами приложения, в том числе локальным развертыванием, через интрасеть или Интернет.

Слайд 35 Архитектура Windows Forms
System.Drawing
доступ к базовой функциональности графики GDI+,
более

Архитектура Windows FormsSystem.Drawingдоступ к базовой функциональности графики GDI+,более совершенная функциональность предоставляется

совершенная функциональность предоставляется в System.Drawing.Drawing2D, System.Drawing.Imaging, System.Drawing.Text.
http://msdn.microsoft.com/ru-ru/system.drawing.aspx
System.Windows.Forms
содержит классы

для создания Windows приложений,
доступ к стандартным элементам управления и компонентам
http://msdn.microsoft.com/ru-ru/system.windows.forms.aspx


Слайд 36 Задание свойств форм

Задание свойств форм

Слайд 37 Изменение внешнего вида и поведения формы
Установка заголовка формы

Изменение внешнего вида и поведения формыУстановка заголовка формы (свойство Text)Установка типа

(свойство Text)

Установка типа границы (свойство FormBorderStyle )

Настройка состояния формы

при запуске (WindowState):
Normal, Minimized и Maximized
Изменение размера формы (свойство Size)

Прозрачность и непрозрачность форм (свойство Opacity )

Forml.Text = "This is Form 1";

aForm.FormBorderStyle = FormBorderStyle.Fixed3D;

aForm.Size = new Size(300, 200);

aForm.Opacity = 0.5;


Слайд 38 Настройка стартовой формы
Стартовая форма — это форма, которая

Настройка стартовой формыСтартовая форма — это форма, которая при выполнении приложения

при выполнении приложения загружается первой.
Стартовый объект указывается в методе

Main.
По умолчанию этот метод расположен в классе Program и автоматически создается Visual Studio.
Стартовый объект обозначен строкой:

Как сделать стартовую форму невидимой (свойство Visible ):

Application.Run(new Form1());

aForm.Visible = false;


Слайд 39 Обработка событий формы
События

Обработка событий формыСобытия

Слайд 40 Реализация обработчика события загрузки формы
private void Form1_Load(object sender,

Реализация обработчика события загрузки формыprivate void Form1_Load(object sender, EventArgs e)

EventArgs e)
{

this.Text = "Стартовая форма";
this.FormBorderStyle = FormBorderStyle.Fixed3D;
this.Size = new Size(300, 200);
this.Opacity = 0.8;
this.TopMost = true;
MessageBox.Show("Посмотрите на свойства формы", "Внимание!!!");
}

Слайд 41 Добавление элементов управления на форму


Добавление элементов управления на форму

Слайд 42 Привязка элемента управления к форме
Привязка
Определяет, какие края элемента

Привязка элемента управления к формеПривязкаОпределяет, какие края элемента управления не меняют

управления не меняют позицию по отношению к краям родительского

контейнера
Для привязки элемента управления к форме
Установите свойство Anchor
Значение по умолчанию: Top, Left
Другие возможные значения: Bottom, Right

Слайд 43 Событийная модель в .NET Framework

Button1



this.button1.Click += new System.EventHandler(this.button1_Click);

private

Событийная модель в .NET FrameworkButton1this.button1.Click += new System.EventHandler(this.button1_Click);private void button1_Click(object sender, System.EventArgs e)		{		…		}

void button1_Click(object sender, System.EventArgs e)
{

}


Слайд 44 public delegate void EventHandler
(object sender, AlarmEventArgs e);
Что такое

public delegate void EventHandler				(object sender, AlarmEventArgs e);Что такое делегаты?ДелегатПривязывает события к

делегаты?
Делегат
Привязывает события к методам
Можно привязать к одному или

нескольким методам
Когда событие регистрируется приложением
ЭУ генерирует событие через вызов делегата для события
Делегат в свою очередь запускает связанный с ним метод


Слайд 45 Как создавать обработчики событий



private void button1_Click(object sender,
System.EventArgs

Как создавать обработчики событийprivate void button1_Click(object sender, 								System.EventArgs e){		MessageBox.Show(

e)
{
MessageBox.Show("MyHandler received the event");

}


Слайд 46 Как динамически добавлять и удалять обработчики событий



Для динамического

Как динамически добавлять и удалять обработчики событийДля динамического связывания события (имя

связывания события (имя события - Click) с обработчиком события,

используйте оператор +=



Для динамического удаления связи события (Click) с обработчиком события используйте оператор -=

this.button2.Click -= new
System.EventHandler(this.button1_Click);

this.button2.Click += new
System.EventHandler(this.button1_Click);


Слайд 47 Элементы управления, отображающие список
ListBox, ComboBox, CheckedListBox.
отличаются внешним

Элементы управления, отображающие списокListBox, ComboBox, CheckedListBox. отличаются внешним видом и функциональными

видом и функциональными возможностями,
одинаково формируют и представляют

списки данных и включают в себя коллекцию Items

Слайд 48 Элементы управления, отображающие список
Для добавления элемента используется метод

Элементы управления, отображающие списокДля добавления элемента используется метод Items.AddДля добавления несколько

Items.Add

Для добавления несколько элементов используется метод AddRange

С помощью метода

Items.Insert можно добавлять элемент в отдельный индекс списка

С помощью метода Items.Remove можно удалить элемент из списка
Метод Items.RemoveAt удаляет элемент под указанным индексом

listBoxl.Items.Add("Limtu");

listBox1.Items.AddRange(new String[] {"Первый", "Второй", "Третий"});

listBox1.Items.Insert(2, "Третьим будешь?");

listbox1.Items.Remove(“string removed");

listBox1.Items.RemoveAt(2);


Слайд 49 Что такое объект Graphics?
Объект Graphics :
Предоставляет холст, на

Что такое объект Graphics?Объект Graphics :Предоставляет холст, на который выводится информацияПредоставляет

который выводится информация
Предоставляет методы для вывода текста и графики

в указанную позицию
Предоставляет набор инструментов для изменения выводимой информации

Graphics myGraphic = this.CreateGraphics();

//draw lines or outlined shapes using a Pen
myGraphic.DrawLine(myPen,X1,Y1,X2,Y2) ;

//draw filled shapes using a Brush
myGraphic.FillRectangle(myBrush,X1,Y1,X2,Y2);

//draw text using a Font and a Brush
myGraphic.DrawString(myText,myFont,myBrush,X1,Y1);


Слайд 50 Создание перьев, кистей и шрифтов
Pen myPen =

Создание перьев, кистей и шрифтов Pen myPen = new Pen(Color.Blue);Font myFont

new Pen(Color.Blue);
Font myFont = new Font("Arial", 12);
SolidBrush myBrush =

new SolidBrush(Color.Blue);

Слайд 51 Рисование линий и фигур
Создайте объект Graphics вызовом метода
System.Windows.Forms.Control.CreateGraphics.
Создайте

Рисование линий и фигурСоздайте объект Graphics вызовом методаSystem.Windows.Forms.Control.CreateGraphics.Создайте объект Pen.Вызовите член

объект Pen.
Вызовите член класса Graphics для рисования на элементе

управления с помощью объекта Реп.

private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = this.CreateGraphics();
Pen p = new Pen(Color.Red, 5);
g.DrawRectangle(p, 10, 10, 100, 100);
}


Слайд 52 Настройка перьев
Для рисования пунктирной линии создайте экземпляр класса

Настройка перьевДля рисования пунктирной линии создайте экземпляр класса Реп и присвойте

Реп и присвойте свойству Pen.DashStyle одно из следующих значений:
DashStyle.Dash,

- тире
DashStyle.DashDot,
DashStyle.DashDotDot,
DashStyle.Dot - точка
DashStyle. Solid.
используется пространство имен System.Drawing.Drawing2D

Graphics g = this.CreateGraphics();
Pen р = new Pen(Coloг.Red, 5);
p.DashStyle = DashStyle.Dot;
g.DrawLine(p, 50, 25, 400, 25);


Слайд 53 Заливка фигур
Применяются методы Fill.
требуют экземпляр класса Brush.
Класс

Заливка фигурПрименяются методы Fill. требуют экземпляр класса Brush.Класс Brush — абстрактный,

Brush — абстрактный, поэтому сначала необходимо создать экземпляр одного

из его производных классов
System.Drawing.Drawing2D.HatchBrush
System.Drawing. TextureBrush
System.Drawing Drawing2D.PathGradientBrush
System.Drawing.SolidBrush
System.Drawing.Drawing2D.LinearGradientBrush

Graphics g = this.CreateGraphics();
Brush b = new SolidBrush(Color.Maroon);
// Создать массив точек points
g.FillPolygon(b, points)


Слайд 54 Введение в многопоточное программирование

Введение в многопоточное программирование

Слайд 55 Многопоточность
Потоки выполнения (threads of execution, нити, треды, потоки, легковесные процессы)

МногопоточностьПотоки выполнения (threads of execution, нити, треды, потоки, легковесные процессы) - параллельно выполняющиеся потоки управления в адресном пространстве

- параллельно выполняющиеся потоки управления в адресном пространстве одного процесса.
Многопоточность — свойство платформы (например, операционной

системы, виртуальной машины и т. д.) или приложения, состоящее в том, что процесс, порождённый в операционной системе, может состоять из нескольких потоков, выполняющихся «параллельно», то есть без предписанного порядка во времени. При выполнении некоторых задач такое разделение может достичь более эффективного использования ресурсов вычислительной машины.

Слайд 56 Потоки выполнения и процессы
Различные процессы выполняются в разных адресных пространствах.
Как локальные, так и глобальные

Потоки выполнения и процессыРазличные процессы выполняются в разных адресных пространствах.Как локальные, так и глобальные переменные процессов являются

переменные процессов являются «собственными».
Различные потоки выполняются в одном адресном пространстве.
Потоки

выполнения имеют «собственный» стек и набор регистров. Глобальные данные являются общими.

Потоки выполнения

Процессы


Слайд 57 Почему используются потоки выполнения ?

Почему используются потоки выполнения ?

Слайд 58 Для использования технических возможностей многопроцессорных систем при сложных

Для использования технических возможностей многопроцессорных систем при сложных вычислениях;Отдельные потоки выполнения

вычислениях;
Отдельные потоки выполнения для различных задач:
Сохранение пользовательского интерфейса «живым»;
Ожидание

ввода/вывода;
Деление задач комплексного тестирования и циклов.
Создание серверов
Локальных и сетевых.


Когда следует использовать потоки выполнения ?


Слайд 59 Проблемы при использовании потоков выполнения
Разделяемые ресурсы;
Взаимодействие между потоками

Проблемы при использовании потоков выполненияРазделяемые ресурсы;Взаимодействие между потоками выполнения;Чрезмерное использование многопоточности

выполнения;
Чрезмерное использование многопоточности отнимает ресурсы и время CPU на

создание потоков и переключение между потоками.

  • Имя файла: dinamicheskie-massivy-windows-forms-potoki-lektsiya-6.pptx
  • Количество просмотров: 116
  • Количество скачиваний: 0