protected PromiseBase(PromiseCreateOptions createOptions, CancellationToken cancellationToken) { PromiseSafeHandle promiseSafeHandle = null; int result = -1; try { result = NativeLibrary.ApiGenPromiseCreate(ref createOptions, out promiseSafeHandle); } catch (Exception ex) { Debug.Assert(false, $"NativeLibrary.ApiGenPromiseCreate threw exception {ex.Message}"); } if (result != 0) { throw new InvalidOperationException(); } this.Handle = promiseSafeHandle; this.createOptions = createOptions; this.cancellationTokenRegistration = cancellationToken.Register(() => NativeLibrary.ApiGenPromiseCancel(promiseSafeHandle)); }
public extern static int ApiGenPromiseCreate(ref PromiseCreateOptions options, out PromiseSafeHandle promiseHandle);
public Promise(TaskCompletionSource <T> taskCompletionSource, PromiseCreateOptions createOptions, CancellationToken cancellationToken) : base(createOptions, cancellationToken) { this.taskCompletionSource = taskCompletionSource; }