2
0

AsyncOp.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Runtime.CompilerServices;
  5. using System.Text;
  6. namespace BansheeEngine
  7. {
  8. public class AsyncOp : ScriptObject
  9. {
  10. internal AsyncOp()
  11. {
  12. Internal_CreateInstance(this);
  13. }
  14. public bool IsCompleted
  15. {
  16. get
  17. {
  18. bool value;
  19. Internal_IsComplete(mCachedPtr, out value);
  20. return value;
  21. }
  22. }
  23. public T GetReturnValue<T>()
  24. {
  25. return (T)Internal_GetReturnValue(mCachedPtr);
  26. }
  27. public void BlockUntilComplete()
  28. {
  29. Internal_BlockUntilComplete(mCachedPtr);
  30. }
  31. [MethodImpl(MethodImplOptions.InternalCall)]
  32. internal static extern void Internal_CreateInstance(AsyncOp managedInstance);
  33. [MethodImpl(MethodImplOptions.InternalCall)]
  34. internal static extern void Internal_IsComplete(IntPtr thisPtr, out bool value);
  35. [MethodImpl(MethodImplOptions.InternalCall)]
  36. internal static extern object Internal_GetReturnValue(IntPtr thisPtr);
  37. [MethodImpl(MethodImplOptions.InternalCall)]
  38. internal static extern void Internal_BlockUntilComplete(IntPtr thisPtr);
  39. }
  40. }