/// <summary>(動作未確認)動作完了時のコールバック関数を登録します。</summary> /// <param name="cb">コールバック関数</param> public void AddCallback(Action<QiFuture> cb) { var apiCallback = new QiApiFutureCallback((fut, udata) => cb(new QiFuture(fut))); QiApiFuture.AddCallback(this, apiCallback); }
internal static void AddCallback(QiFuture future, QiApiFutureCallback cb) => qi_future_add_callback(future.Handle, cb, IntPtr.Zero);
//NOTE: これさ、アンマネージに渡したapiCallbackがGCされて死ぬよくあるパターンでは? /// <summary>(動作未確認)動作完了時のコールバック関数を登録します。</summary> /// <param name="cb">コールバック関数</param> /// <param name="userData">ユーザーデータ</param> public void AddCallback(Action<QiFuture, IntPtr> cb, IntPtr userData) { var apiCallback = new QiApiFutureCallback((fut, udata) => cb(new QiFuture(fut), udata)); QiApiFuture.AddCallback(this, apiCallback, userData); }
private static extern void qi_future_add_callback(IntPtr future, QiApiFutureCallback cb, IntPtr userdata);
internal static void AddCallback(QiFuture future, QiApiFutureCallback cb, IntPtr userData) => qi_future_add_callback(future.Handle, cb, userData);
/// <summary>(動作未確認)動作完了時のコールバック関数を登録します。</summary> /// <param name="cb">コールバック関数</param> public void AddCallback(Action <QiFuture> cb) { var apiCallback = new QiApiFutureCallback((fut, udata) => cb(new QiFuture(fut))); QiApiFuture.AddCallback(this, apiCallback); }
//NOTE: これさ、アンマネージに渡したapiCallbackがGCされて死ぬよくあるパターンでは? /// <summary>(動作未確認)動作完了時のコールバック関数を登録します。</summary> /// <param name="cb">コールバック関数</param> /// <param name="userData">ユーザーデータ</param> public void AddCallback(Action <QiFuture, IntPtr> cb, IntPtr userData) { var apiCallback = new QiApiFutureCallback((fut, udata) => cb(new QiFuture(fut), udata)); QiApiFuture.AddCallback(this, apiCallback, userData); }