VS2010 C#两个项目,A调用B的DLL,如何将项目B执行结果返回给A,并让A显示结果。
A只调用B的一个类的构造函数,B由构造函数启动执行线程,现在想把执行的结果返回给A,并让A在界面显示其结果。如果B再引用A,那就相互引用了,逻辑很混乱。有没有什么简单的办...
A只调用B的一个类的构造函数,B由构造函数启动执行线程,现在想把执行的结果返回给A,并让A在界面显示其结果。如果B再引用A,那就相互引用了,逻辑很混乱。有没有什么简单的办法把执行结果通知A,让A更新。管道和消息机制感觉都很麻烦呀。
展开
展开全部
给B写个event,然后在A里添加event handler,这个handler是属于A的,会在B里指定的时候也就是执行完的时候被调用。
详细参见MSDN
http://msdn.microsoft.com/en-us/library/aa645739(v=vs.71).aspx
详细参见MSDN
http://msdn.microsoft.com/en-us/library/aa645739(v=vs.71).aspx
追问
那B是不是要引用A呢?否则 B 的Evnet和 A的Event Handler怎么关联起来?
追答
B不用引用A的,相当于是运行时会依次执行挂接在B这个event上的所有event handler,执行的时候跟具体哪个对象挂接的event handler无关,所以B不用引用A的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
B是另起的一个线程?为什么要这么做呢,直接把你调用的函数改为带返回值的不就可以了,比如public int add()
{
return 1;
}至于返回什么就跟你需求有关系了
{
return 1;
}至于返回什么就跟你需求有关系了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
事件event是首选,B不需要引用A,事件其实也可以叫作消息订阅,你是要A订阅B的消息,而B不需要知道A的任何消息;A订阅了B的消息,那么B到了执行完后就会通知A;
直接返回值也可以,当然也可以有其他方法,只是会显得更麻烦一点
直接返回值也可以,当然也可以有其他方法,只是会显得更麻烦一点
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我觉得应该用delegate就应该能够实现的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询