Visualizzazione dei risultati da 1 a 10 su 12

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2014
    Messaggi
    305
    ti ringrazio ma sta soluzione gia l'avevo provata però non mi risolve il problema , avrei bisogno tipo di qualcosa di bloccante che se il file è in uso da un altro processo attendo che si liberi senza sollevare eccezione

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Quote Originariamente inviata da linux_r Visualizza il messaggio
    ti ringrazio ma sta soluzione gia l'avevo provata però non mi risolve il problema , avrei bisogno tipo di qualcosa di bloccante che se il file è in uso da un altro processo attendo che si liberi senza sollevare eccezione

    Beh... è piuttosto semplice:

    codice:
    // Provo ad acquisire il lock sul file e attendo finchè non ci riesco
    FileLock lock = null;
    
    while(lock == null) {
       lock = channel.tryLock();
       if (lock == null) {
          // Attendo 2 secondi
          try {
             Thread.sleep( 2000 );
          } catch (InterruptedException ie) {
             ie.printStackTrace();
          }
       }
    }
    
    // Qui ci arrivo solo quando avrò effettivamente il lock
    ...   // fai quel che vuoi col file, che tanto è tuo.

    Non è una soluzione "ottimale" perchè in questo caso potresti rimanere "appeso" all'infinito (se non riesce ad ottenere il lock perchè impossibile)... conviene prevedere un meccanismo che consenta l'uscita se passa "troppo tempo" (il troppo tempo lo decidi tu).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.