我有一个用C编写的本机dll。一个功能是搜索网关并在超时后返回。
在C代码中,这是一个同步过程
搜索->回调->返回布尔值。
因此,在find_gw
完成时,gw_found
已经被调用,因此我们已经有了结果。是否有适当的方法来同步此操作,以便在gwaddr gwname
之后立即获得find_gw
?我给它运行的顺序编号。 gw_found
在find_gw
内部被同步调用
var gw_found = new FOUND_GW_CALLBACK(callback) //1.new delegate
bool pinvokereturn=GwPInvokes.find_gw(broadcastaddr, timeout, gw_found);//2.pinvoke
//4.How to get gwaddr/gwname here
其中
public static bool callback(IntPtr ptr,string gwddr,string gwname)
{
return true; //3.callback
}