¿Cómo detectar si una variable ha cambiado?

Me he encontrado con ganas de hacer ciertas cosas en mis programas solo si una variable ha cambiado. Hasta ahora he estado haciendo algo como esto:

int x = 1;
int initialx = x;

...//code that may or may not change the value of x

if (x!=initialx){
    doOneTimeTaskIfVariableHasChanged();
    initialx = x; //reset initialx for future change tests
}  

Existe una manera mejor / más simple de hacer esto?

Respuestas a la pregunta(6)

Su respuesta a la pregunta