Come si implementa un metodo run-only-once quando tutti i criteri vengono soddisfatti per la prima volta?

2

Ho bisogno di un metodo run-only-once che quando tutti i criteri sono soddisfatti, ad esempio A & B & C sono veri, esegui i codici una sola volta, ma solo una volta. Quindi se in seguito tutti i criteri vengono soddisfatti nuovamente (A & B & C sono di nuovo veri, ma non mi interessa quindi), il codice non verrà eseguito di nuovo.

Questo non risolverà il problema con il multithread, non c'è alcun problema di sincronizzazione dei dati qui, solo in seguito tutti i criteri potrebbero essere nuovamente soddisfatti.

Ho provato un metodo come questo: aggiungi un'altra proprietà, aggiornala quando viene soddisfatto qualche criterio. Quando tutti i criteri sono soddisfatti, esegui il codice, quindi impostalo su un valore speciale, che impedirà l'esecuzione di nuovo.

Ad esempio, imposta il suo valore iniziale su 1, quando A è vero e 2, quando B è vero e 4, quando C è vero e amp; 8, quindi quando è 15, esegui i codici e imposta il suo valore su 0. quindi più avanti, non sarà mai più 15.

Mi stavo chiedendo se esiste un modo migliore?

    
posta Qiulang 03.03.2017 - 03:50
fonte

1 risposta

4

Sembra che avrai bisogno di un'altra variabile come innesco che può essere testato quando viene chiamato il metodo. Rendilo facile da ricordare come hasRun=false . Quando il metodo viene eseguito per la prima volta, è possibile modificarne il valore su true.

    
risposta data 03.03.2017 - 05:21
fonte

Leggi altre domande sui tag