-
Notifications
You must be signed in to change notification settings - Fork 16
Async Swimlane Diagram
ZjzMisaka edited this page Mar 19, 2026
·
2 revisions
@startuml
skinparam swimlaneWidth same
skinparam ActivityBackgroundColor #FEFEFE
skinparam ActivityBorderColor #333333
|User Layer|
start
:Submit Async Task;
|#E1F5FE|PTP Layer|
:Custom SynchronizationContext;
:Unified Execution Engine;
note left
* Native Async
* Sync/Async Interleaving
end note
|User Layer|
:Execute User Task;
fork
:Await User Code;
|PTP Layer|
:Capture Continuation;
:Manage via PTP;
note left
* Apply PTP Features
(Pause, Stop, etc.)
end note
|User Layer|
:Resume Task;
fork again
:Call 3rd Party API;
|#F5F5F5|3rd Party Library Layer|
:Internal Async Logic;
:Await Internal Code
(Assuming ConfigureAwait(false))
====
<b>[PTP: Does not manage its continuations]</b>
<b>[3rd: Does not rely on PTP-specific features]</b>;
:Default ThreadPool;
:Resume Internal Logic;
|User Layer|
:Return Result;
end fork
|User Layer|
:Task Completed;
stop
@enduml- Sync | Async
- Pool Control | Work Control
- Divide And Conquer
- Thread Pool Sizing
- Work Callback | Default Callback
- Rejection Policy
- Parallel Execution
- Work Priority | Thread Priority
- Error Handling
- Work Timeout | Cumulative Work Timeout
- Work Dependency
- Work Group
- Events
- Runtime Status
- Running Timer
- Queue Type (FIFO | LIFO | Deque | Custom)
Core
Results
Options