luciano deri Active Member Licensed User Longtime User Jul 25, 2017 #1 Il tanto deprecato DoEvent lo avevo usato per far girare il progressdialog durante una elaborazione. Non posso sostituire con Sleep(0) in quanto fa il return. Quindi? Code: strquery = "SELECT * FROM tabella " dbcursor = Main.dbSql.ExecQuery(strquery) Dim documento As String For i = 0 To dbcursor.RowCount - 1 dbcursor.position = i ProgressDialogShow("Lettura tabella in corso") DoEvents next
Il tanto deprecato DoEvent lo avevo usato per far girare il progressdialog durante una elaborazione. Non posso sostituire con Sleep(0) in quanto fa il return. Quindi? Code: strquery = "SELECT * FROM tabella " dbcursor = Main.dbSql.ExecQuery(strquery) Dim documento As String For i = 0 To dbcursor.RowCount - 1 dbcursor.position = i ProgressDialogShow("Lettura tabella in corso") DoEvents next
luciano deri Active Member Licensed User Longtime User Jul 25, 2017 #3 Star-Dust said: Continua con DoEvents Click to expand... Davvero? E' l'istruzione più infamata di tutto il B4A, adesso è pure deprecata e non c'è un analogo metodo per fare una cosa banale come girare la progressdialog?
Star-Dust said: Continua con DoEvents Click to expand... Davvero? E' l'istruzione più infamata di tutto il B4A, adesso è pure deprecata e non c'è un analogo metodo per fare una cosa banale come girare la progressdialog?
Star-Dust Expert Licensed User Longtime User Jul 25, 2017 #4 Già. Il punto é che non esiste un corrispondente in Java. esiste la pausa "Sleep" (non quello che ha creato Erel Sleep e Wait For), é un istruzione Java che ferma per un tempo X il programma. Ma non fa avanzare la GUI (interfaccia grafica gestita dal O.S.) Code: Dim jo As JavaObject Dim l As Long = 500 jo.InitializeStatic("java.lang.Thread").RunMethod("sleep", Array(l)) Il DoEvents ferma il flusso dell'esecuzione del programma, ma fa andare avanti l'O.S. e la GUI. Anche il Wait For e lo Sleep di Java che puoi usare con Threading Library, non ottieni lo stesso risultato, perché ti permette di far girare alcune thread in multitaskig (e parallelamente) e quindi fermarne uno e far avanzare gli altri thread (magari fai avanzare solo la grafica) però oltre che si crea un gran casino nella progettazione e non ottieni sempre lo stesso risultato. Ecco perché devi usare DoEvents
Già. Il punto é che non esiste un corrispondente in Java. esiste la pausa "Sleep" (non quello che ha creato Erel Sleep e Wait For), é un istruzione Java che ferma per un tempo X il programma. Ma non fa avanzare la GUI (interfaccia grafica gestita dal O.S.) Code: Dim jo As JavaObject Dim l As Long = 500 jo.InitializeStatic("java.lang.Thread").RunMethod("sleep", Array(l)) Il DoEvents ferma il flusso dell'esecuzione del programma, ma fa andare avanti l'O.S. e la GUI. Anche il Wait For e lo Sleep di Java che puoi usare con Threading Library, non ottieni lo stesso risultato, perché ti permette di far girare alcune thread in multitaskig (e parallelamente) e quindi fermarne uno e far avanzare gli altri thread (magari fai avanzare solo la grafica) però oltre che si crea un gran casino nella progettazione e non ottieni sempre lo stesso risultato. Ecco perché devi usare DoEvents
Star-Dust Expert Licensed User Longtime User Jul 25, 2017 #5 Quando Erel ha detto che poteva sostituire DoEvents, non diceva in senso generale ma per alcuni specifici utilizzi. Anzi per alcuni utilizzi é ottimale WaitFor e Sleep e ti far risparmiare codice e tempo di progettazione. Per non é utilizzabile per tutti gli usi perché non sono corrispondenti.
Quando Erel ha detto che poteva sostituire DoEvents, non diceva in senso generale ma per alcuni specifici utilizzi. Anzi per alcuni utilizzi é ottimale WaitFor e Sleep e ti far risparmiare codice e tempo di progettazione. Per non é utilizzabile per tutti gli usi perché non sono corrispondenti.
luciano deri Active Member Licensed User Longtime User Jul 25, 2017 #6 Ok grazie. Basterebbe non fare terrorismo mediatico dichiarando che "it can lead the stability issues"
Ok grazie. Basterebbe non fare terrorismo mediatico dichiarando che "it can lead the stability issues"
Star-Dust Expert Licensed User Longtime User Jul 25, 2017 #7 In parte é vero, in certi casi limite rende instabile il sistema e comunque Erel deve vendere il nuovo prodotto quindi spinge un pò.
In parte é vero, in certi casi limite rende instabile il sistema e comunque Erel deve vendere il nuovo prodotto quindi spinge un pò.
luciano deri Active Member Licensed User Longtime User Jul 26, 2017 #8 Star-Dust said: In parte é vero, in certi casi limite rende instabile il sistema e comunque Erel deve vendere il nuovo prodotto quindi spinge un pò. Click to expand... Si almeno dalla versione 4 di Android, ad esempio guiai a metterlo nel focuschange o nell'eterpressed di un edittext, però una volta capite le criticità si usa. Mi era sembrato di capire che con la versione 7 il DoEvents è diventato ancora più instabile.
Star-Dust said: In parte é vero, in certi casi limite rende instabile il sistema e comunque Erel deve vendere il nuovo prodotto quindi spinge un pò. Click to expand... Si almeno dalla versione 4 di Android, ad esempio guiai a metterlo nel focuschange o nell'eterpressed di un edittext, però una volta capite le criticità si usa. Mi era sembrato di capire che con la versione 7 il DoEvents è diventato ancora più instabile.
Star-Dust Expert Licensed User Longtime User Jul 26, 2017 #9 Se vuoi togliere DoEvents devi riscrivere il codice usando la lettura asincrona del DataBase. Attendere il completamento della lettura (magari con WaitFor) e poi nascondere la progressBar
Se vuoi togliere DoEvents devi riscrivere il codice usando la lettura asincrona del DataBase. Attendere il completamento della lettura (magari con WaitFor) e poi nascondere la progressBar
Star-Dust Expert Licensed User Longtime User Jul 26, 2017 #10 In alternativa lascia il DoEvents. Per me lo lascerei