From 8722a9920c1f6119bf6e769cba270e63097f8e25 Mon Sep 17 00:00:00 2001
From: chai <215380520@qq.com>
Date: Thu, 23 May 2024 10:08:29 +0800
Subject: + astar project
---
.../com.arongranberg.astar/Utilities/Promise.cs | 48 ++++++++++++++++++++++
1 file changed, 48 insertions(+)
create mode 100644 Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/Utilities/Promise.cs
(limited to 'Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/Utilities/Promise.cs')
diff --git a/Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/Utilities/Promise.cs b/Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/Utilities/Promise.cs
new file mode 100644
index 0000000..9cfc0e4
--- /dev/null
+++ b/Other/AstarPathfindingDemo/Packages/com.arongranberg.astar/Utilities/Promise.cs
@@ -0,0 +1,48 @@
+using Unity.Jobs;
+
+namespace Pathfinding.Util {
+ public interface IProgress {
+ float Progress { get; }
+ }
+
+ ///
+ /// A promise that T is being calculated asynchronously.
+ ///
+ /// The result can be accessed by calling . This will block until the calculation is complete.
+ ///
+ public struct Promise: IProgress, System.IDisposable where T : IProgress, System.IDisposable {
+ public JobHandle handle;
+ T result;
+
+ public Promise(JobHandle handle, T result) {
+ this.handle = handle;
+ this.result = result;
+ }
+
+ public bool IsCompleted {
+ get {
+ return handle.IsCompleted;
+ }
+ }
+
+ public float Progress {
+ get {
+ return result.Progress;
+ }
+ }
+
+ public T GetValue () {
+ return result;
+ }
+
+ public T Complete () {
+ handle.Complete();
+ return result;
+ }
+
+ public void Dispose () {
+ Complete();
+ result.Dispose();
+ }
+ }
+}
--
cgit v1.1-26-g67d0