Salve, sono parecchie settimane che cerco di risolvere questo problema ma ho avuto scarsi risultati:

Sto facendo una libreria in C# che deve mettere a disposizione alcuni metodi (sincroni). Ho una form nascosta per utilizzare il componente WebBrowser che mi permette di caricare una pagina .html e utilizzare delle funzioni javascript in esso contenuti.

Il problema sta nel fatto che la funzione che devo utilizzare dal javascipt è asincrona...del tipo

codice:
function funzione_async(){
   //... qua non posso ritornare niente!!!!
}

function funzione_ritorno_ok(){
  //... qua ritorno il risultato della funzione_async

  return risultato;
}
Dal c# ho una funzione del tipo

codice:
public Object funzioneSincrona(){
		
	return wb.Document.InvokeScript("funzione_async", "argomenti");

}
Duque la mia funzione in c# non può ritornare direttamente il risultato della funzione javascript poichè è asincrona.

Le possibili strade da me percorse sono state le seguenti:

1) rendo la funzione javascript sincrona!!! Come? con un while(!fine_calcolo); Risultato: la cpu va al 100% e il javascript non mette a disposizione sleep() o metodi simili.
2) nel c#, dopo l'invokeScript, attendo finchè una variabili in javascript (un hidden field) non cambia stato ma il problema è che se attendo mi si blocca anche il componente webBroswer non permettendo più l'esecuzione dello script.

C'è qualche anima pia che può darmi una mano? sono disperato!

grazie mille