C#実現関数コールバック
4970 ワード
public class Lib
{
public delegate void UserFunctionCB();
private static UserFunctionCB m_userFnCB;
/// <summary>
///
/// </summary>
/// <param name="func"></param>
public static void InitCallbackFunction(UserFunctionCB func)
{
m_userFnCB = func;
}
/// <summary>
///
/// ( )
/// </summary>
/// <param name="func"></param>
public static void HandleExceptionForNDK()
{
//
CallUserFunction();
}
/// <summary>
///
/// </summary>
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);
}
/// <summary>
///
/// </summary>
private void CallBackFunction()
{
Debug.LogError("print of call back function!");
}
}
以上、依頼によりコールバック操作を実現しました!この例はUnityで使用されるため,コードを直接ほじくり,直接コピーはコンパイルに通らない.
ここに最初の手帳を書いて、忘れないようにします.