【发布时间】:2012-01-01 01:48:42
【问题描述】:
我使用 GTK#,我需要在主窗口关闭时中止线程。该线程附加到主线程的内部小部件。我试图使用删除和销毁事件。我失败了。
public class MyClass {
GLWidget widget= new AnyWidget();
public GLWidget widget{
get { return widget; }
}
private float red = 0.0f;
public MyClass ()
{
Thread producer = new Thread (new ThreadStart (ThreadRun));
producer.Start ();
widget.DeleteEvent += delegate { // I don't know what event I should use
producer.Abort ();
};
}
public void ThreadRun()
{
while (true) {
//TODO
}
}
}
问题是当我按下关闭按钮时,我的 GTK# 应用程序没有被关闭。
【问题讨论】:
-
你能发布一个简单的二十行程序来重现这个问题吗?
-
而不是
Aborting 你的线程你应该设置`producer.IsBackground = true;'这样,当应用程序准备关闭时,它就不会挂起您的进程