diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSDownloadFileOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSDownloadFileOperation.cs
index 1dde7aa1..1ba0226c 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSDownloadFileOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSDownloadFileOperation.cs
@@ -94,6 +94,9 @@ namespace YooAsset
             // 等待验证完成
             if (_steps == ESteps.CheckVerifyTempFile)
             {
+                if (IsWaitForAsyncComplete)
+                    _verifyOperation.WaitForAsyncComplete();
+
                 if (_verifyOperation.IsDone == false)
                     return;
 
@@ -154,9 +157,6 @@ namespace YooAsset
 
             while (true)
             {
-                if (_verifyOperation != null)
-                    _verifyOperation.WaitForAsyncComplete();
-
                 // 注意:如果是导入或解压本地文件,执行等待完毕
                 if (isReuqestLocalFile)
                 {
@@ -305,6 +305,9 @@ namespace YooAsset
             // 等待验证完成
             if (_steps == ESteps.CheckVerifyTempFile)
             {
+                if (IsWaitForAsyncComplete)
+                    _verifyOperation.WaitForAsyncComplete();
+
                 if (_verifyOperation.IsDone == false)
                     return;
 
@@ -364,9 +367,6 @@ namespace YooAsset
 
             while (true)
             {
-                if (_verifyOperation != null)
-                    _verifyOperation.WaitForAsyncComplete();
-
                 // 注意:如果是导入或解压本地文件,执行等待完毕
                 if (isReuqestLocalFile)
                 {
diff --git a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSLoadBundleOperation.cs b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSLoadBundleOperation.cs
index 7a863e07..0d8d91ee 100644
--- a/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSLoadBundleOperation.cs
+++ b/Assets/YooAsset/Runtime/FileSystem/DefaultCacheFileSystem/Operation/DCFSLoadBundleOperation.cs
@@ -58,6 +58,9 @@ namespace YooAsset
                     _downloadFileOp = _fileSystem.DownloadFileAsync(_bundle, downloadParam);
                 }
 
+                if (IsWaitForAsyncComplete)
+                    _downloadFileOp.WaitForAsyncComplete();
+
                 DownloadProgress = _downloadFileOp.DownloadProgress;
                 DownloadedBytes = _downloadFileOp.DownloadedBytes;
                 if (_downloadFileOp.IsDone == false)
@@ -198,9 +201,6 @@ namespace YooAsset
         {
             while (true)
             {
-                if (_downloadFileOp != null)
-                    _downloadFileOp.WaitForAsyncComplete();
-
                 if (ExecuteWhileDone())
                 {
                     if (_downloadFileOp != null && _downloadFileOp.Status == EOperationStatus.Failed)
@@ -274,6 +274,9 @@ namespace YooAsset
                     _downloadFileOp = _fileSystem.DownloadFileAsync(_bundle, downloadParam);
                 }
 
+                if (IsWaitForAsyncComplete)
+                    _downloadFileOp.WaitForAsyncComplete();
+
                 DownloadProgress = _downloadFileOp.DownloadProgress;
                 DownloadedBytes = _downloadFileOp.DownloadedBytes;
                 if (_downloadFileOp.IsDone == false)
@@ -313,9 +316,6 @@ namespace YooAsset
         {
             while (true)
             {
-                if (_downloadFileOp != null)
-                    _downloadFileOp.WaitForAsyncComplete();
-
                 if (ExecuteWhileDone())
                 {
                     if (_downloadFileOp != null && _downloadFileOp.Status == EOperationStatus.Failed)
diff --git a/Assets/YooAsset/Runtime/OperationSystem/AsyncOperationBase.cs b/Assets/YooAsset/Runtime/OperationSystem/AsyncOperationBase.cs
index 83a54b97..8bad5bac 100644
--- a/Assets/YooAsset/Runtime/OperationSystem/AsyncOperationBase.cs
+++ b/Assets/YooAsset/Runtime/OperationSystem/AsyncOperationBase.cs
@@ -147,7 +147,7 @@ namespace YooAsset
 
                 // 当执行次数用完时
                 _whileFrame--;
-                if (_whileFrame == 0)
+                if (_whileFrame <= 0)
                 {
                     Status = EOperationStatus.Failed;
                     Error = $"Operation {this.GetType().Name} failed to wait for async complete !";
diff --git a/Assets/YooAsset/Runtime/ResourceManager/Loader/LoadBundleFileOperation.cs b/Assets/YooAsset/Runtime/ResourceManager/Loader/LoadBundleFileOperation.cs
index 992a0ad0..520643f4 100644
--- a/Assets/YooAsset/Runtime/ResourceManager/Loader/LoadBundleFileOperation.cs
+++ b/Assets/YooAsset/Runtime/ResourceManager/Loader/LoadBundleFileOperation.cs
@@ -69,6 +69,9 @@ namespace YooAsset
                 if (_loadBundleOp == null)
                     _loadBundleOp = BundleFileInfo.LoadBundleFile();
 
+                if (IsWaitForAsyncComplete)
+                    _loadBundleOp.WaitForAsyncComplete();
+
                 DownloadProgress = _loadBundleOp.DownloadProgress;
                 DownloadedBytes = _loadBundleOp.DownloadedBytes;
                 if (_loadBundleOp.IsDone == false)
@@ -101,9 +104,6 @@ namespace YooAsset
         {
             while (true)
             {
-                if (_loadBundleOp != null)
-                    _loadBundleOp.WaitForAsyncComplete();
-
                 if (ExecuteWhileDone())
                 {
                     _steps = ESteps.Done;
diff --git a/Assets/YooAsset/Runtime/ResourceManager/Loader/LoadDependFileOperation.cs b/Assets/YooAsset/Runtime/ResourceManager/Loader/LoadDependFileOperation.cs
index d1c53a4b..df718c63 100644
--- a/Assets/YooAsset/Runtime/ResourceManager/Loader/LoadDependFileOperation.cs
+++ b/Assets/YooAsset/Runtime/ResourceManager/Loader/LoadDependFileOperation.cs
@@ -36,6 +36,14 @@ namespace YooAsset
 
             if (_steps == ESteps.CheckDepend)
             {
+                if (IsWaitForAsyncComplete)
+                {
+                    foreach (var loader in Depends)
+                    {
+                        loader.WaitForAsyncComplete();
+                    }
+                }
+
                 foreach (var loader in Depends)
                 {
                     if (loader.IsDone == false)
@@ -73,11 +81,6 @@ namespace YooAsset
         {
             while (true)
             {
-                foreach (var loader in Depends)
-                {
-                    loader.WaitForAsyncComplete();
-                }
-
                 if (ExecuteWhileDone())
                 {
                     _steps = ESteps.Done;
diff --git a/Assets/YooAsset/Runtime/ResourceManager/Provider/ProviderOperation.cs b/Assets/YooAsset/Runtime/ResourceManager/Provider/ProviderOperation.cs
index 501aeed2..b6b3107a 100644
--- a/Assets/YooAsset/Runtime/ResourceManager/Provider/ProviderOperation.cs
+++ b/Assets/YooAsset/Runtime/ResourceManager/Provider/ProviderOperation.cs
@@ -96,6 +96,7 @@ namespace YooAsset
             {
                 if (LoadDependBundleFileOp != null)
                     LoadDependBundleFileOp.WaitForAsyncComplete();
+
                 if (LoadBundleFileOp != null)
                     LoadBundleFileOp.WaitForAsyncComplete();