簡體   English   中英

在Google Maps Widget上繪制Google Maps GeoCoder請求的並發問題

[英]Concurrency Issue plotting google maps GeoCoder request on Google Maps Widget

我的程序基本上包括3個步驟:1)向某些坐標查詢Geocoder對象並將其存儲在集合中2)將結果發送到我的主模塊以在地圖上進行繪制3)將其繪制在google map小部件上

我已經創建了一個Requestor類來處理地理編碼-此類具有getResults()函數,該函數將坐標的ArrayList返回到要在地圖上繪制的主模塊。
但是,當我嘗試在onModuleLoad()方法范圍內執行所有3個步驟時,遇到了一個並發問題,並從結果集中提取了空結果。 我已經使用一組3個按鈕(請求,提取結果和繪圖)來進行此工作,但是希望在模塊加載時自動將其觸發。
我懷疑這與觸發事件和在適當的位置放置處理程序有關; 如果是這種情況,請提供一個具體的示例,因為我試圖找到一些關於EventHandlers的很好的教程。

聽起來Requestor類是異步調用的。 在這種情況下,您可以使用EventBus (使用HandlerManager -GWT 1.6或更高版本實現)在GWT中發送和訂閱事件。 因此,從地理編碼服務獲取結果后,您可以發送帶有結果的事件。 期望結果的模塊通過EventBus預訂此事件。

您可能想查看gwt-presentergwt-dispatch應用程序以獲得實現和示例。

我已經解決了使用計時器和5000毫秒時間表的問題。

我不執行GWT,因此無法深入了解,但畢竟,您看起來(或正在)使用單獨的線程進行處理。 如果這是真的,那么您基本上需要(讓它) join線程,然后再對其最終結果進行處理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM