我們如何在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