J2ME IO Programming Tips

Da Wikipedia, l'enciclopedia libera.


Interrompere la chiamata StreamConnectionNotifier.acceptAndOpen()

Per interrompere la chiamata bloccante StreamConnectionNotifier.acceptAndOpen(), occorre invocare da un altro thread il metodo close() sullo StreamConnectionNotifier. Ad esempio, considerando il seguente blocco di codice:

public void run()
{
  while (running)
  {
     try {
        StreamConnection sc = scn.acceptAndOpen();
        // do something with it
     }
     catch (IOException e)
     {
        running = false;
     }
  }
}

è possibile interrompere la chiamata acceptAndOpen() invocando il metodo close() da un thread differente. Questa chiamata causa una IOException che permette poi di impostare a false il flag running e terminare così l'esecuzione (nell'esempio).

Personal tools