C#DLL中回调函数实现
请教各位:现在用C#封装了一个DLL,想在DLL运行的时候动态回传有关信息给调用的程序,比如打开了串口,下发了什么数据,接收了什么数据,都是在实时的回传,请问怎么实现,不是在C#里调用其他比如C写的DLL里有回调如何调用,而是C#自己的实现,谢谢了!
------解决方案--------------------http://www.cnblogs.com/cssmystyle/archive/2012/03/15/2397524.html
------解决方案--------------------不道,来听听。
INVOKE,也没有回调,委托好像也不行。
------解决方案--------------------
委托为何不行
------解决方案--------------------使用事件或者委托。
------解决方案--------------------听起来就是Event.
类似
public delegate void PortOpenedHander(object sender, EventArgs e);
类定义
{
public event PortOpenedHander PortOpened;
public void OpenPort()
{
//打开端口
//成功后
if (PortOpened != null)
PortOpened(this, new EventArgs());
}
如果需要的话可以定义自己的EventArgs 类
------解决方案--------------------本帖最后由 caozhy 于 2012-09-14 09:50:57 编辑
按照我说的做就能解决你的问题,不过你需要一个消息句柄,看你想怎么获取了这个是个难点。
SendMessage是同步发送,还有一个异步的叫什么我忘记了,你可以自己定义一个消息,一直监听这个消息
一旦发现是你的消息就进行处理就行了,