博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 实现函数回调
阅读量:4648 次
发布时间:2019-06-09

本文共 1380 字,大约阅读时间需要 4 分钟。

public class Lib{        public delegate void UserFunctionCB();        private static UserFunctionCB m_userFnCB;        ///         /// 初始化时把需要回调的函数传入        ///         ///         public static void InitCallbackFunction(UserFunctionCB func)        {            m_userFnCB = func;        }        ///         /// 当程序出现异常时会自动触发此函数        /// (在这里我就不过多的描述异常捕获的过程了)        ///         ///         public static void HandleExceptionForNDK()        {            // 出现异常时调用用户自定义函数            CallUserFunction();        }        ///         /// 回调执行用户设置的函数        ///         private static void CallUserFunction()        {            if (m_userFnCB != null)            {                IAsyncResult result = m_userFnCB.BeginInvoke(delegate(IAsyncResult ar)                {                    m_userFnCB.EndInvoke(ar);                }, null);                // 执行50毫秒后超时                result.AsyncWaitHandle.WaitOne(50, true);            }        }}

以下是调用部份:

public class Demo{    void Start()    {        var m_callbackFn = new Lib.UserFunctionCB(CallBackFunction);        Lib.InitCallbackFunction(m_callbackFn);    }    ///     /// 回调函数实现部份    ///     private void CallBackFunction()    {         Debug.LogError("print of call back function!");    }}

以上就是通过委托的方式实现回调操作!由于这个例子是在Unity下使用的,直接把代码抠出来的,直接拷贝是编译不通过的。

只是写在这里当初一个记事本,避免忘记。

转载于:https://www.cnblogs.com/Martin_Q/p/4478494.html

你可能感兴趣的文章
一步步学习SPD2010--第九章节--使用可重用工作流和工作流表单(1)--创建和使用可重用工作流...
查看>>
POJ 3624 Charm Bracelet 0-1背包
查看>>
React 使用browserHistory项目访问404问题
查看>>
Atitit 基于dom的游戏引擎
查看>>
Atitit 硬件 软件 的开源工作 差异对比
查看>>
requestAnimationFrame
查看>>
APUE 12.7 取消选项
查看>>
思杰20140522
查看>>
02、MySQL—数据库基本操作
查看>>
H5学习之旅-H5的表单(11)
查看>>
np.random的随机数函数
查看>>
HTML5文件拖拽
查看>>
第一个CUDA程序
查看>>
CentOS 6.9/7通过yum安装指定版本的Redis
查看>>
Android中RelativeLayout各个属性的含义
查看>>
PhoneGap API帮助文档翻译—Capture (采集)
查看>>
微信公众平台开发(45)食物营养及热量查询
查看>>
微信公众平台开发(58)自定义菜单
查看>>
FTP上传下载使用ASCII与binary的区别
查看>>
我的网站,书籍收藏
查看>>