Login Register
domenica 20 aprile 2014
 
Forums
I Forum di LightSwitch Tips & Tricks
Schermata waiting
Last Post 28 giu 2012 04.00 by alessio6181. 5 Replies.
Printer Friendly
Sort:
PrevPrev NextNext
You are not authorized to post a reply.
Author Messages Resolved
Paolino87
Basic Member
Basic Member
Posts:13

--
30 mar 2012 10.00  
Ciao a tutti,
nella mia applicazione vorrei far visualizzare una schermata di waiting, dopo aver premuto un pulsante, per fare delle operazioni in background e senza permettere che l'utente possa toccare in giro nell'applicativo
Come posso fare?

Grazie mille!

Paolo
Alessandro Del Sole [MVP]
Team
Team
Posts:255
Avatar

--
30 mar 2012 11.08  
Nel senso che non ti basta il messaggio che compare di default?
Quando l'operazione si comincia a fare lunga, automaticamente viene mostrato il messaggio "Attendere.." o "Wait.." che rende inattiva l'interfaccia.

Ti dirò di più, questo non avviene solo con le query o operazioni create automaticamente da LightSwitch, ma il runtime è così potente da accorgersi se tuo codice personalizzato sta causando un'operazione intensiva e a quel punto mostra ugualmente il messaggio, rendendo inattiva l'interfaccia fino a completamento.

Di cos'altro hai bisogno?
Alessandro Del Sole (LightSwitch T&T Team) Microsoft MVP - Visual Basic: Development http://community.visual-basic.it/Alessandro http://community.visual-basic.it/AlessandroEnglish
Paolino87
Basic Member
Basic Member
Posts:13

--
30 mar 2012 11.27  
Si infatti avevo visto comparire la schermata "Attendere", però siccome creo un thread in background che lavora per un tot di secondi non la visualizza più... Giustamente il thread è diverso dal thread UI di lightswitch e per questo la schermata "Attendere" non lo sente. C'è un modo per mantenere "viva" la schermata "attendere" anche con il mio thread in background?
Paolino87
Basic Member
Basic Member
Posts:13

--
30 mar 2012 01.10  
Mi rispondo da solo
Utilizzando i Dispatchers di LightSwitch riesco ad implementare un timer sul thread e a mantenere la schermata "Attendere", in questo modo:

...

Dispatchers.Main.BeginInvoke(() =>
{
_myDispatcherTimer.Tick += new EventHandler(Each_Tick);
_myDispatcherTimer.Start();
});

...

Grazie Alessandro!
Paolino87
Basic Member
Basic Member
Posts:13

--
17 apr 2012 11.32  
Ritorno su questa discussione per un'altra domanda.
Ho un dispatcher timer che viene lanciato ogni secondo e lo avvio così:

Dispatchers.Main.BeginInvoke(() =>
{
_myDispatcherTimer.Tick += new EventHandler(Each_Tick);
_myDispatcherTimer.Start();
});

All'interno dell'Each_Tick, però, effettuo delle operazioni sui db (eseguo delle query da codice) e quindi sono costretto ad utilizzare un nuovo dispatcher, altrimenti andrebbe in eccezione, così:

this.Details.Dispatcher.BeginInvoke(() =>
{
query...
});


Questo metodo viene richiamato ogni secondo per un tempo massimo di 60 secondi. Però in questi 60 secondi il mio applicativo lightSwitch non mostra la schermata di Attendere... / Wait...

Come posso modificare il codice affinché mi si attivi la schermata di attesa?

Grazie!
alessio6181
New Member
New Member
Posts:3

--
28 giu 2012 04.00  
scusate se mi intrometto,
sto facendo un qualcosa molto simile a Paolino87, ma, pur inserendo una query in un ulteriore dispatcher ottengo sempre un errore del tipo
"Impossibile chiamare Execute() in un dispatcher diverso dal dispatcher logico di ExecutableObject."

ovvero sia che io metta la query nell'Each_Tick e sia che nell'Each_Tick lancio un nuovo dispatcher dove metter la mia query ugualemnte ho l'errore.

grazie
You are not authorized to post a reply.

Active Forums 4.2
NOT LICENSED FOR PRODUCTION USE
www.activemodules.com
  
News
      


VB T&T dedica un evento on line a Visual Studio 2012

Visual Basic Tips & Tricks organizza per giovedì 13 settembre 2012 un evento on line dedicato al lancio di Microsoft Visual Studio 2012.
Per informazioni , cliccate qui




Disponibili le registrazioni dell'evento speciale del lancio di Visual Studio Lightswitch

Sono disponibili le registrazioni ed il materiale delle sessioni relative all'evento speciale dedicato al lancio di Microsoft Visual Studio LightSwitch tenuto mercoledì 27 luglio 2011 al seguente indirizzo: http://bit.ly/qAwtM7.



  
Utenti online
Membership Membership:
Latest New User Latest: Francesco Piva
Past 24 Hours Past 24 Hours: 0
Prev. 24 Hours Prev. 24 Hours: 0
User Count Overall: 1183

People Online People Online:
Visitors Visitors: 5
Members Members: 0
Total Total: 5

Online Now Online Now:
  
 
© 2010-2013 LightSwitch Tips&Tricks Team - Visual Basic Tips&Tricks Network