Verschachtelte Arbeitsbereiche
Mit Hilfe von verschachtelten Arbeitsbereichen können Anwendungen Eigenschaften für bestimmte Tasks definieren und diesen zuordnen, ohne sie gleichzeitig für alle Teilen der Anwendung verfügbar zu machen.
Wenn eine Anwendung einen Arbeitsbereich erstellt, dann wird dem erstellenden Thread ein Arbeitsbereichskontext zugeordnet. Falls der Anwendungsthread einen weiteren Arbeitsbereich erstellt, dann wird der neue Arbeitsbereich im vorhandenen Arbeitsbereich verschachtelt und wird gleichzeitig zum aktuellen Arbeitsbereich. Alle Eigenschaften, die im ursprünglichen übergeordneten Arbeitsbereich definiert sind, sind für den verschachtelten Arbeitsbereich sichtbar. Die Anwendung kann zusätzliche Eigenschaften im verschachtelten Arbeitsbereich definieren, die nicht zum übergeordneten Arbeitsbereich gehören.

Die Verschachtelung kann sich auf die Einstellungen der Eigenschaften auswirken. Die Eigenschaften können aus den Arbeitsbereichen gelöscht werden oder direkt in den Arbeitsbereichen, in denen sie festgelegt wurden, geändert werden. Die verschachtelten Arbeitsbereiche können jedoch auch dazu verwendet werden, Informationen in der Eigenschaft temporär zu überschreiben, ohne dass die Eigenschaft selbst dazu geändert werden muss. Abhängig von den Modi, die den Eigenschaften im übergeordneten Arbeitsbereich zugeordnet sind, können die Modi und die Werte der Schlüssel des übergeordneten Arbeitsbereichs innerhalb des verschachtelten Arbeitsbereichs überschrieben werden.
- Modi, die es einem verschachtelten Arbeitsbereich erlauben, den Modus oder den Wert eines
Schlüssels lokal zu überschreiben. Die Modi, die ein Überschreiben erlauben sind Folgende:
- Normal
- Fixed normal
- Modi, die es einem verschachtelten Arbeitsbereich nicht erlauben, den Modus oder den Wert eines
Schlüssels lokal zu überschreiben. Die Modi, die ein Überschreiben nicht erlauben sind Folgende:
- Read-only
- Fixed read-only
Wenn ein übergeordneter Arbeitsbereich eine Eigenschaft mit einem Modus definiert, der das Überschreiben erlaubt, dann kann ein verschachtelter Arbeitsbereich einen neuen Wert für einen Schlüssel oder einen neuen Modus für die Eigenschaft definieren. Der neue Wert oder Modus ist anschließend für die Arbeitsbereiche sichtbar, die in diesem Arbeitsbereich verschachtelt sind. Änderungen am Modus unterliegen den Einschränkungen, die im Abschnitt "Modus ändern" beschrieben sind. Wenn ein übergeordneter Arbeitsbereich eine Eigenschaft mit einem Modus definiert, der kein Überschreiben erlaubt, dann kann kein verschachtelter Arbeitsbereich einen neuen Wert für den Schlüssel definieren.
Ein verschachtelter Arbeitsbereich kann Eigenschaften aus übergeordneten Arbeitsbereichen löschen, allerdings sind diese Änderungen nur so lange gültig, wie der verschachtelte Arbeitsbereich existiert. Nach Beendigung des verschachtelten Arbeitsbereichs werden alle Eigenschaften, die dort hinzugefügt wurden, entfernt, und alle Eigenschaften, die im verschachtelten Arbeitsbereich gelöscht wurden, werden wiederhergestellt.
