-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.
0 commit comments