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?