変数名にlockが使えません
lockは予約語ですか?
string lock = "a";