Skip to content

Commit f169fa9

Browse files
Update docs/extensibility/visualstudio.extensibility/extensibility-models.md
Co-authored-by: Gordon Hogenson <[email protected]>
1 parent 083ec52 commit f169fa9

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

docs/extensibility/visualstudio.extensibility/extensibility-models.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ package.JoinableTaskFactory.RunAsync(async delegate
175175
});
176176
```
177177

178-
VSSDK itself doesn't support asynchronous command execution from a core API perspective. That is, when a command is executed, VSSDK doesn't have a way to execute the command handler code on a background thread, wait for it to finish, and return the user to the original calling context with execution results. So, even though the ExecuteAsync API in Community Toolkit is syntactically async, it's not true async execution. And because it's a fire and forget way of async execution, you could call ExecuteAsync over and over again without ever waiting for the previous call to complete first. While Community Toolkit provides a better experience in terms of helping extenders discover how to implement common scenarios, it ultimately can't solve the fundamental problems with VSSDK. In this case, the underlying VSSDK API is not asynchronous, and the fire and forget helper methods provided by Community Toolkit can't properly address async yielding and working with client state; it may hide some potential hard-to-debug issues.
178+
VSSDK itself doesn't support asynchronous command execution from a core API perspective. That is, when a command is executed, VSSDK doesn't have a way to execute the command handler code on a background thread, wait for it to finish, and return the user to the original calling context with execution results. So, even though the ExecuteAsync API in Community Toolkit is syntactically async, it's not true async execution. And because it's a fire and forget way of async execution, you could call ExecuteAsync over and over again without ever waiting for the previous call to complete first. While Community Toolkit provides a better experience in terms of helping extenders discover how to implement common scenarios, it ultimately can't solve the fundamental problems with VSSDK. In this case, the underlying VSSDK API is not asynchronous, and the fire-and-forget helper methods provided by Community Toolkit can't properly address async yielding and working with client state; it may hide some potential hard-to-debug issues.
179179

180180
### UI thread versus background thread
181181

0 commit comments

Comments
 (0)