【发布时间】:2018-06-24 04:01:48
【问题描述】:
我正在尝试编写一个包含后台线程的 dm 脚本,如下面的示例代码所示。在这段代码中,我想在图像窗口关闭时停止后台线程。我认为在这种情况下可能需要一些事件监听器。你能告诉我如何通过关闭图像窗口的事件来控制(即停止)后台线程吗?如果您能建议对我的代码进行一些修改或展示您的示例代码,我将不胜感激。
// $BACKGROUND$
//
Class CBackground : Thread
{
Number isRunning
Number imgID
Image tmpIMG
//
Void Init( Object self, Number iID ){
imgID = iID
tmpIMG := GetImageFromID( imgID )
}
//
Void StopRunning( Object self ){
isRunning = 0
}
//
Number GetIsRunning( Object self ){
return isRunning
}
//
Void RunThread( Object self ){
Result("Background thread is starting ......")
isRunning = 1
while (isRunning)
{
tmpIMG = random()
sleep(0.5)
}
Result(" finished !!" + "\n")
}
}
//
Void Main(){
Object cbkg = alloc(CBackground)
Image IMG := RealImage("test",4,64,64)
IMG = random()
IMG.ShowImage()
IMG.SetWindowSize(512,512)
cbkg.Init(IMG.GetImageID())
cbkg.StartThread()
}
//
Main()
【问题讨论】:
标签: dm-script