Ahoj Trpo, je to už dlouho, ale v zásadě šlo IMHO o toto: - spustí se vlákno LoopTilExit a začne kontrolovat variable exit a nacachuje si jí - mezitím uplyne 500ms a první vlákno hodnotu variable změní a následně čeká na ukončení vlákna LoopTilExit - vlákno LoopTilExit se nemusí o změně hodnoty variable dozvědět, protože ji má nacachovanou a nikdy se neukončí - první vlákno stále čeká na ukončení druhého Takže vlákna na sebe chybou čekají. Řešením by bylo použít volatile, které slouží právě pro tyto účely. Nebo osobně bych raději použil nějaký ManualResetEvent pro sémanticky přesnější vyjádření smysl proměnné.
|