Uso un TWebBrowser para mostrar un mapa de Google. El problema es que bloquea el hilo principal ui mientras carga el mapa. ¿Es posible actualizar el mapa en un hilo separado?¿Desea actualizar TWebBrowser en un hilo separado?
Editar: RRUZ tiene usted razón TWebBrowser tiene carga asíncrona para la URL. pero he encontrado el problema de por qué se bloquea la llamada:
if WaitWhileProcessing and (MapQueryResult.Count > 0) then
Result := MapQueryResult[0] as TMapQuery;
y el método:
function TMapItemCollection.WaitWhileProcessing: Boolean;
var
vMaxSleepCnt: Integer;
begin
Result := True;
vMaxSleepCnt := 0;
while Processing or Loading do
begin
inc(vMaxSleepCnt);
Application.ProcessMessages;
Sleep(100);
if vMaxSleepCnt = 100 then
begin
Result := False;
Break;
end;
end;
end;
por lo que parece a solucionar este código debe ser rediseñado. Pero este no es el alcance de esta pregunta.
¿Estás seguro de que la GUI se congela mientras se carga el mapa? porque TWebBrowser actúa de forma asíncrona. ¿Puedes mostrar el código que estás utilizando para cargar el mapa? – RRUZ
¿Lo ha intentado con TEmbeddedWB desde www.bsalsa.com? Puede que ya tenga una solución y sea muy fácil cambiar a ella y hacer que las cargas asincrónicas funcionen. –
Gracias por las sugerencias RRUZ y WarrenP. RRUZ tiene razón en que ya está cargando de manera asíncrona en TWebBrowser. Entonces, en mi caso, la razón es otra cosa. Tengo que investigar porque el código es bastante complejo ... –