• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/19

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

19 Cards in this Set

  • Front
  • Back
Delegacje
Jaką metodę kompilator domyślnie generuje, kiedy wywoływana jest delegacja.
Invoke()
Delegacje
Jaka metoda umożliwia delegacji obsługę zdarzeń asynchronicznych.
BeginInvoke()
Delegacje
Wywołanie BeginInvoke() jakich dwóch parametrów wymaga.
- pierwszy to delegacja AsyncCallback - określająca metodę wywoływaną po zakończeniu działania metody asynchronicznej.
- drugi to wartość przekazywaną do delegacji po zakończeniu wykonywania metody.

Jeśli wywołanie zwrotne nie jest potrzebne - to obie wartości należy ustawić na null.

IAsyncResult result = msgDelegate.BeginInvoke("Wywołanie delegacji.", null, null);
Delegacje
Ile zarejestrowanych metod mogą mieć delegacje asynchroniczne
tylko jedną
Delegacje
Co zwraa metoda asynchroniczna BeginInvoke()
Metoda asynchroniczna BeginInvoke() zwraca obiekt implementujący interfejs IAsyncResult
Delegacje
Do czego służy obiekt implementujący interfejs IAsyncResult (zwracany gdy wywołujemy metodę BeginInvoke)
Obiekt implementujący interfejs IAsyncResult, który jest zwracany przez asynchroniczną metodę BeginInvoke() służy do pobierania danych wyjściowych wygenerowanych przez metodę asynchroniczną, a jego właściwość IsCompleted można użyć do kontroli stanu asynchronicznej operacji.
Delegacje
Przykład użycia wywołania zwrotnego, którą metoda asynchroniczna wywołuje po zakończeniu działania.
private delegate void myDelegate(String msg);
myDelegate = d = new myDelegate(ShowMessage);
d.BeginInvoke("OK", new AsyncCallback(myCallBack), null);

metoda myCallback() jest uruchamiana w wątku z puli wątków, a nie w głównym wątku aplikacji - wpływa to na projekt interfejsu użytkownika aplikacji.
Delegacje
W jakim wątku jest uruchamiana metoda wywołania zwrotnego (AsyncCallback), którą metoda asynchroniczna wywołuje po zakończeniu działania.
Metoda ta jest uruchamiana w wątku z puli wątków, a nie w głównym wątku aplikacji - wpływa to na projekt interfejsu użytkownika aplikacji.
Delegacje
Do czego służy metoda EndInvoke()
Jest wywoływana w celu pobrania wyników zwróconych przez metodę asynchroniczną.
Delegacje
W jaki sposób wywołać metodę EndInvoke()
Metodę EndInvoke() wywołuje się przekazując do niej obiekt implementujący IAsyncResult - ten sam obiekt, który zwraca metoda BeginInvoke().

IAsyncResult result = GetStatus.BeginInvoke(null, null);
//wykonuje potrzebne operacje a następnie pobiera zwróconą wartość
int status = GetStatus.EndInvoke(result);
Delegacje
Kiedy dodatkowo należy wywołać metodę EndInvoke(). O czym należy pamiętać.
Metodę EndInvoke należy również wywołać, gdy asynchroniczna metoda nie zwraca wartości. Metoda EndInvoke pozwala wykryć wyjątki zgłoszone przez metodę asynchroniczną, a także informuje wspólne środowisko uruchomieniowe o konieczności uporządkowania zasobów użytych przy tworzeniu wywołania asynchronicznego.
Delegacje
Właściwość klasy AsyncResult:
- AsyncState
Obiekt przekazywany jako ostatni parametr metody BeginInvoke()
Delegacje
Właściwość klasy AsyncResult:
- AsyncWaitHandle
Zwraca obiekt typu WaitHandle służący do obsługi oczekiwania na dostęp do zasobów. O możliwości dostępu informuje "sygnał" ukończenia asynchronicznego zadania.
Delegacje
wymienić trzy metody obiektu AsyncWaitHandle i do czego służą.
Metody tego obiektu (AsyncWaitHandle) pozwalają użyć różnych technik synchronizacji opartych na jednym lub wielu aktywnych wątkach.
Metody to:
- WaitOne(),
- WaitAny(),
- WaitAll()
Delegacje
Do czego służy metoda WaitOne() obiektu AsyncWaitHandle.
Metoda WaitOne() blokuje obiekt do czasu otrzymania sygnału przez obiekt WatiHandle.
Delegacje
Do czego służy metoda WaitAny() obiektu AsyncWaitHandle.
Metoda WaitAny() oczekuje na wysłanie sygnału przez dowolny wątek (statyczna).
Delegacje
Do czego służy metoda WaitAll() obiektu AsyncWaitHandle.
Metoda WaitAll() oczekuje na wysłanie sygnału przez wszystkie wątki (statyczna).
Delegacje
Właściwość klasy AsyncResult:
- AsyncDelegate
Właściwość klasy AsyncResult - AsyncDelegate zwraca delegację używaną do obsługi asynchronicznych wywołań.
Delegacje
Właściwość klasy AsyncResult:
- IsCompleted
Właściwość klasy AsyncResult - IsCompleted jest wartością logiczną zwracającą stan asynchronicznego wywołania.