我们如何在C#中使用回调函数我们如何在C#中使用回调函数
4
A
回答
4
我认为您在寻找的是“代表”。例如:
public MyClass
{
public delegate void MyCallback(object sender, string MyArg);
public string DoSomeWork(string Foo, MyCallback mcb)
{
mcb(this, Foo);
return Foo;
}
}
您也可以使用委托来定义事件。例如,如果你想在MyClass的事件称为“OnMyCallback”,用它定义:
...
public event MyCallback OnMyCallback;
...
干杯, 亚当
1
这里How to write callbacks in C# and .NET
看看如果你正在寻找异步方法回拨,那么How to call a Visual C# method asynchronously 肯定会帮助
0
或者你是在谈论C# .NET event handlers(扩大代表的答案)?
2
将问题解读为:“我想从C#调用本地C++回调函数”。
您需要在边界的托管/ C#端创建一个委托。
C++:
DECLARE_CALLBACK(SampleChannelCallback, void, (void* ptr, uint id, void* data));
C#:
[UnmanagedFunctionPointerAttribute(CallingConvention.Cdecl)]
delegate void NativeCallbackDelegate(IntPtr ptr, uint id, IntPtr data);
如果使用SWIG创建本机的包装,那么后续添加到您的SwigUtil.h
。
#if defined(SWIG)
// Callback declare macro allows for SWIG to automatically construct a macro for a target language for the macros
#define DECLARE_CALLBACK(NAME, RETURNTYPE, PARAMS) typedef void* NAME; %callback_typemap(NAME)
#else
#define DECLARE_CALLBACK(NAME, RETURNTYPE, PARAMS) typedef RETURNTYPE (NAME) PARAMS
#endif
由于您的问题不是很清楚,我会将其留在那里。如果你想了解更多信息,请在评论中提问。
HTH,
相关问题
- 1. 我们如何在C++中用“parameter = value”调用函数?
- 2. 如何调用在Haskell中使用回调的C函数?
- 3. 如何在C++库文件中使用回调函数?
- 4. 我们在C#中调用::?
- 5. jQuery:我如何知道我正在使用多个回调函数调用正确的回调函数?
- 6. 如何在C++中调用返回C#字符串的函数?
- 7. 如何在C++上使用SetTimer在0.5s后回调1函数
- 8. 如何在JavaScript函数中使用回调函数
- 9. 我们如何在灵药中轻松实现函数调用?
- 10. Java:我们如何在“禁止函数指针”时创建回调函数?
- 11. 我们可以在Java中的函数中调用函数吗?
- 12. 我如何作用于回调函数
- 13. 在C#中返回php回调函数
- 14. 我如何调用Ajax回调函数的JavaScript函数
- 15. 如何在成员函数线程中调用回调函数?
- 16. 如何使用Delphi的回调函数是在C
- 17. 如何使用EnumSystemLocales功能和EnumLocalesProc回调函数在Visual C++
- 18. 在调用函数的回调函数中使用参数
- 19. 我如何从JavaScript调用C#函数?
- 20. 如何在C++中调用函数
- 21. 如何在C#中调用SQL函数?
- 22. 如何在C++中调用主函数
- 23. 如何使函数返回一个JSON字符串在PHP中调用它们?
- 24. 我们如何使用C#
- 25. 如何在函数返回中使用PhantomJS的webpage.open回调?
- 26. 在C#中使用委托作为C DllImported函数的回调
- 27. 如何使用Doxygen的在我的函数中的C++函数
- 28. 在C#中,如何调用返回列表的函数?
- 29. 如何在Obj-C中用回调定义一个Javascript函数?
- 30. C#中的回调函数#
你能举一个更具体的例子吗?你的问题太泛泛,无法回答。 – Oded 2010-06-22 10:05:24
请更具体。 – 2010-06-22 10:05:57
可能重复[什么是回调?](http://stackoverflow.com/questions/2139812/what-is-a-callback) – 2010-06-22 10:06:11