public IAsyncResult BeginListDirectory(string path, AsyncCallback asyncCallback, object state, Action<int> listCallback = null)
{
CheckDisposed();
var asyncResult = new SftpListDirectoryAsyncResult(asyncCallback, state);
ThreadAbstraction.ExecuteThread(() =>
{
try
{
var result = InternalListDirectory(path, count =>
{
asyncResult.Update(count);
if (listCallback != null)
{
listCallback(count);
}
});
asyncResult.SetAsCompleted(result, false);
}
catch (Exception exp)
{
asyncResult.SetAsCompleted(exp, false);
}
});
return asyncResult;
}