我目前正在使用C#创建模拟。我正在使用OpenGl-TaoFramework。我遇到了一些问题。我在代码中使用了Glut.glutMainLoop();
函数但是我知道这个函数永远不会返回并且程序停止了。如果我在更改变量后单击按钮,它可以正常工作,但问题是我不想使用按钮。但另一方面,我无法再次成功回忆Glut.glutMainLoop();
。任何帮助将非常感激。
private void button1_Click(object sender, EventArgs e)
{
i = Convert.ToInt32(textBox1.Text);
j = Convert.ToInt32(textBox2.Text);
k = Convert.ToInt32(textBox3.Text);
l = Convert.ToInt32(textBox4.Text);
m = Convert.ToInt32(textBox5.Text);
Glut.glutMainLoop();
}
答案 0 :(得分:0)
如果我正确理解你的问题,你想在每次变量变化时触发一个函数,为此你可以使用一个事件处理程序。这是一个非常基本的事件处理程序的代码示例
public class Program
{
public delegate void ChangedEventHandler(object sender, EventArgs e);
public static void Main()
{
var glut = new GlutVar();
glut.Change += DoWhenEventTriggers;
glut.GlutInt = 5;
}
public static void DoWhenEventTriggers(object sender, EventArgs e)
{
Console.WriteLine("Event triggered");
}
private class GlutVar
{
public event ChangedEventHandler Change;
private int _GlutInt = 0;
public void OnChange()
{
if(Change != null)
Change(this,EventArgs.Empty);
}
public int GlutInt {
get
{
return _GlutInt;
}
set
{
_GlutInt = value;
OnChange();
}
}
}
}
每次变量DoWhenEventTriggers
发生变化时, Glutint
都会运行,因此您可以执行类似的设置,以便在变量发生变化时允许代码触发Glut.glutMainLoop();
。