-2

それが問題です。スレッドを使用して関数を呼び出しましたが、メイン制御に戻ると、しばらくするとメインがスリープ状態になります。

例 (Lookこれは Win32API 関数を呼び出す行ですGetMessage):

Start()
e = Thread.new { Look() }
for _i in 0..1000
    puts e.status
end

このコードはeのステータスを 1000 回出力する必要がありますが、1 回しか出力されません。合理的なエラーが見つかりません。Lookメッセージを受け取るまで戻らないので、これがエラーの原因になっているのではないかと思います。

4

2 に答える 2

0

私の推測では、空の文字列として表示される is のステータスですenilputs

nilステータスは、スレッドが異常終了したことを意味します。

何が間違っているにせよ、あなたのコードは何かを1000 回印刷しているので、それを示すために目に見えるテキストを に入れるべきputsです。

_iまた、使い捨て変数を使用するのではなく、

1000.times do
    puts e.status
end
于 2013-05-09T03:11:03.273 に答える
0

私はすべての助けに感謝して解決しました。エラーは、PeekMessageのGetMessageAを変更するだけでよいため、スレッドはそれが死んでいると解釈しないということでした

一部のプロキシ

于 2013-05-09T19:25:21.290 に答える