所以我在Ruby中工作,想法是不斷重新打印一組字符串,直到按下一個鍵。這是我對於在等待輸入的同時在Ruby線程中打印會生成奇怪的輸出
frame =
"aaaa
bbbb
cccc
dddd"
thread = Thread.new do
while(true)
print frame
sleep(0.5)
end
end
thread.run
begin
system("stty raw -echo")
str = STDIN.getc
ensure
system("stty -raw echo")
end
thread.kill
代碼當此代碼執行時,它的輸出
aaaa
bbbb
cccc
ddddaaaa
bbbb
cccc
ddddaaaa
bbbb
cccc
ddddaaaa
bbbb
cccc
ddddaaaa
bbbb
cccc
dddd
顯然,你會認爲它應該產生
aaaa
bbbb
cccc
dddd
重複,直到關鍵是按下,我不明白爲什麼它不。思考?
我強烈懷疑你可以削減一個簡單的例子。此外,爲了獲得最佳幫助,您應該提供一個功能完整的獨立示例來展示問題,而不僅僅是複製所需代碼的子集。 – Phrogz 2013-05-03 02:12:42
對不起。我的想法是,我打印了一系列ASCII格式的幀,我可以停止按鍵。它可以工作,但它完全吹走了任何幀中的任何換行符。我會盡快將一個更簡單的例子放在一起。 – SSEMember 2013-05-03 02:15:18
看到我的'答案',表明你所描述的似乎不成問題。您需要一個削減測試用例,或者描述代碼失敗的操作系統和Ruby版本。 – Phrogz 2013-05-03 02:21:53