У меня есть собственная dll, написанная на C. Одна из функций - поиск Gateway и возврат после тайм-аута.
В кодах C это синхронный процесс
поиск -> обратный вызов -> возврат bool.
Итак, к моменту окончания 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
}