ECNF
ECNF Prüfung 2
ECNF Prüfung 2
-
- 1 / 31
-
Flashcards
Für die Ausführung von Tasks werden manchmal Threads erzeugt.
Exceptions aus asynchronen Methoden werden via Task an den Aufrufer weitergeleitet
await blockiert den aufrufenden Thread nicht.
Methoden müssen mit async markiert werden, um Methoden auf Task-Objekten aufrufen zu können.
Wird mit await auf einen Task gewartet, kann derselbe Thread in der Zwischenzeit anderen Code ausführen.
Task.Run erzeugt immer einen neuen Thread.
async/await verwendet intern den ThredPool
Durch async/await konnen mehrere Cores ausgelastet werden.
Wird mit Task.Wait() auf einen Task gewartet, kann der aufrufende Thread in der Zwischenzeit keinen anderen Code ausführen.
Wird mit Task.Wait() auf einen Task gewartet, kann der aufrufende Thread in der Zwischenzeit anderen Code ausführen.
Der Garbage Collector ist für die Ressourcenfreigabe von IDisposable-Objekten verantwortlich.
Finalizer werden in umgekehrter Reihenfolge gegenüber der Erstellung aufgerufen.
Der Garbage Collector unterbricht die Programmausführung während der Speicherbereinigung.
Der Garbage Collector wird aktiv, sobald ein Scope (z.B. eine Methode) verlassen wird
Wie kann man die Ausführung einer LINQ-Abfrage als Local oder Remote Query forcieren?
IEnumerable vs. IQueryable
Nennen Sie zwei Nachteile von Finalizeren
nicht deterministisch -> unklar wann und OB sie aufgerufen werden.
Möglichkeit Referenzen aufzubauen welche nicht mehr weggehen.
Welche Technologie eignet sich für den "Upload einer Datei"?
Welche Technologie eignet sich für den "Grosse Pimzahlen berechnen"?
Welche Technologie eignet sich für den "Schreiben einer grossen Textdatei"?
Welche Technologie eignet sich um "Zwei Datenbankabfragen gleichzeitig durchzuführen"?
Der .NET Garbage Collector kann aus dem Programmcode angestossen werden.
Der .NET Garbage Collector ekennt zyklische Referenzen (Objekte welche sich gegenseitig referenzeiren, aber von aussen nicht referenziert werden.)
Der .NET Garbage Collector unterbricht die Programmausführung während der Speicherbereinigung.
Der .NET Garbage Collector ruft IDisposable.Dispose() auf.
Wozu dient das Dispose-Pattern?
Es ist dazu da selbst gemanagte Ressourcen freizugeben (IO Socks, networt usw.)
Wozu dient die Methode GC.SupressFinalize? Wozu wird sie im Dispose-Pattern verwendet?
Damit der GC das Objekt nicht in die Finalize Queue stellt sondern direkt abräumt.
Was versteht man im Rahmen der Garbage Collection unter "Reachable"?
Ob ein Objekt im Graph des GC an einem Root Objekt hängt.
-> es gibt noch die Referent darauf von einem Rootobjekt (auch indirekt)
Für die Ausführung von Tasks werden immer Threads erzeugt
Exceptions in asynchronen Methoden werden via Task an den Aufrufer weitergeleitet und dort wieder geworfen.
await blockiert den aufrufenden Thread.
Methoden müssen mit async markiert werden, um Methoden auf Task-Objekten aufrufen zu können.