Mi chiedo, non sarebbe possibile per un IDE rilevare eventuali oggetti mutabili condivisi utilizzati in più thread?
Potresti contrassegnare i tipi come [ThreadSafe]
o [Immutable]
usando gli attributi in .NET, per esempio, e quindi quelle variabili non causerebbero mai avvertimenti, ma qualsiasi altra variabile che viene usata all'interno di un metodo invocato tramite Thread
sarebbe essere evidenziato come "potenzialmente non sicuro" a meno che tutti i compiti non si verifichino all'interno di un lock
o qualcosa del genere.
So che non sarebbe perfetto perché il compilatore semplicemente non può ragionare su tutti gli scenari possibili (gli esseri umani possono a malapena farlo), ma suggerimenti come questi sarebbero piuttosto preziosi, no?
È persino fattibile?