高难`高手进200分不够再加
现在有一人项目,在WebService中要调用Delphi中的Dll, 其中Delphi的Dll中有一个回调函数,在我的WebService中无法直接调用这个回调函数获得返回的结果,只有通过一个延时或其它什么处理机制,在这个回调函数中赋值给我定义的一个Session变量或静态成员变量,然后我再在WebService函数中对这个Session变量或静态成员变量进行判断. 如果条件满足,则返回正确的结果,反之. 我实在是找不出如何实现这种方式的方法. 求高人们指点.
------解决方案--------------------可以试着定义委托来实现DLL中的回调。
------解决方案--------------------回调函数是什么东西啊?
------解决方案--------------------不懂哦```学习下``
------解决方案--------------------不懂,帮顶一下
------解决方案--------------------这也没有什么好办法还不如自己写个类似触发器的东西
大概意思```其实回调也是有一个线程时时判断
Session[ "iMsgType "] = test.callback();
while(time <timeout)
{
HashGetValue();
time++
}
bool HashGetValue()
{
if(Session[ "iMsgType "]==null)
{
System.Threading.Thread.Sleep(50);
return false;
}
return true;
}
------解决方案--------------------比较难啊,帮定
------解决方案--------------------up
------解决方案--------------------看看http://dev.csdn.net/article/69/69261.shtm可能会有帮助
------解决方案--------------------帮顶一下。这个没有搞过
------解决方案--------------------帮顶
------解决方案--------------------自己再写一个DLL,把它那个DLL给封装起来,这样你就可以直接调动了吧
------解决方案--------------------UP+学习
------解决方案--------------------思路有问题
------解决方案--------------------不好实现啊。回调函数还是Delphi的
------解决方案--------------------
------解决方案--------------------在回调过程中设一个Sleep能否!!等执行完毕再释放这个sleep
------解决方案--------------------Session变量或静态成员变量
-------------------------
楼主,Delphi的DLL能调用.Net中的Session和静态成员变量么?我对这个有疑问。
如果能调用,就有办法,通知.Net程序;
如果不能调用,可以用.Net监控中间变量,每隔多少毫秒去检查是否已经赋值。
第一个办法是主动通知的思路,第二个办法大体上是轮询的办法了。
------解决方案--------------------sleep一下 等它返回 你再返回