public static Task <ulong> IDataSizeAsync(ulong seHandle) { var tcs = new TaskCompletionSource <ulong>(); IDataSizeCb callback = null; callback = (self, result, len) => { if (result.ErrorCode != 0) { tcs.SetException(result.ToException()); CallbackManager.Unregister(callback); return; } tcs.SetResult(len); CallbackManager.Unregister(callback); }; CallbackManager.Register(callback); NativeBindings.IDataSize(Session.AppPtr, seHandle, Session.UserData, callback); return(tcs.Task); }
public static extern void IDataSizeNative(IntPtr appPtr, ulong seHandle, IntPtr self, IDataSizeCb callback);
public void IDataSize(IntPtr appPtr, ulong seHandle, IntPtr self, IDataSizeCb callback) { IDataSizeNative(appPtr, seHandle, self, callback); }