如果该方法包含需要处理的参数,则递归调用异步方法是否安全?
public async Task<bool> ConnectAsync(CancellationTokenSource cancellationTokenSource)
{
using CancellationTokenSource token = new CancellationTokenSource();
await ConnectAsync(token).ConfigureAwait(false);
}
最佳答案
确保控件始终返回到创建它的方法的实例是安全的。所以只要你:
使用using
语句或手动调用Dispose()
,然后await
通话
然后,该对象将被正确处置,而不是在使用之前。
但是,与所有递归一样,您需要注意不要以stack overflow结尾。就像您编写的那样,该方法将最终导致堆栈溢出。