这是个问题。我使用线程调用了一个函数,但是当我返回主控件时,main会在几分钟内进入睡眠状态。
示例(Look
这里是一行调用Win32API函数GetMessage
):
Start()
e = Thread.new { Look() }
for _i in 0..1000
puts e.status
end
此代码应将e
的状态打印1000次,但只打印一次。我找不到合理的错误。 Look
在收到消息之前不会返回,因此我怀疑这可能会导致错误。
答案 0 :(得分:0)
我的猜测是e
的状态为nil
,puts
显示为空字符串。
nil
状态表示线程异常终止。
无论出现什么问题,您的代码都会打印某些内容 1000次,并且您应该在puts
中放置一些可见文字来显示该内容。
此外,不要使用抛弃变量_i
,而是写
1000.times do
puts e.status
end
答案 1 :(得分:0)
我感谢您的帮助, 错误在于我只需要为PeekMessage更改GetMessageA 所以线程不解释那是死的jeje
Some.Proxy