ManualAsyncTask.cs 679 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. namespace Fort23.Core
  2. {
  3. public class ManualAsyncTask
  4. {
  5. private CTask _cTask = null;
  6. public static ManualAsyncTask Create()
  7. {
  8. return new ManualAsyncTask();
  9. }
  10. public ManualAsyncTask()
  11. {
  12. _cTask = CTask.Create(false);
  13. }
  14. public async CTask Wait()
  15. {
  16. if (_cTask == null)
  17. {
  18. return;
  19. }
  20. await _cTask;
  21. }
  22. public void SetResult()
  23. {
  24. if (_cTask == null)
  25. {
  26. return;
  27. }
  28. _cTask.SetResult();
  29. _cTask = null;
  30. }
  31. }
  32. }