待ち方(締め切り過ぎて思い出した怖いコード)
納涼!ほんとにあった怖いコード(by CodeIQ×はてな)
↑の締め切りは過ぎてしまったので、これはもう応募対象にはならないが、一つ思い出した怖いコードの紹介を。
N88BASICの頃は、「ちょっと待機」というとき、
10 FOR I=1 TO 10000:NEXT I
みたいな書き方がしばしばされていた。
・時代は下ってWindowsになっても、しばらく装置制御関係では、「もとN88BASICのソースコード」を強引に移植したようなコードがかなりあった。
ループ回数を増やしたり、ループ内に重い処理を置いたりという『工夫(?)』はあるが、本質は変わらない。「待つ」べきところに来ると一定時間「ハングアップ」したように、マウスもキーも受け付けなくなる。
そんなコードにしばしば出くわした。あちらこちらにあった。
たまに見かけたコードの「待ち」のループ内に、DoEvents(VB)とかApplication.ProcessMessages(Delphi) とか使ってあるだけで、当時は「とても素敵」に思えたものだ。
※でも、「待ち」の処理にForループってのは、流石に今はもうやめてもらわないと。