onidle loop auch in C# ?
-
hi, ich bein ein quereinsteiger in c#, komme aus der C++/MFC-Richtung.
in der mfc gibts die onidle loop, welche ich nun in einem projekt in c# bräuchte.
allerdings kann ich mit application.idle net wirklich viel anfangen, da das ja nur nach einer messagebehandlung aufgerufen wird, und nicht zyklisch, wenn keine message eintrifft (im leerlauf).ich würde folgenden C++ Code in C# benötigen, und bitte um hilfe bzw. tips :
BOOL CApp::OnIdle(long lCount)
{
CWinApp::OnIdle(lCount);return TRUE; // WICHTIG !!!! ich will IMMER Wieder hier reinlaufen !!!
}
-
versuch mal folgendes:
#using System;
#using System.Windows.Forms;class TheApp : Form
{
static void Main()
{
TheApp app = new TheApp();
Application.Exit();
}TheApp()
{
InitializeComponent();// hier könnte man zb directx initialisieren !
while (Created)
{
MeineHauptschleife();
// Wichtig für Eventhandler !!!!
Application.DoEvents(); messages.
}
}private void InitializeComponent()
{
this.Name = "DXGameApp";
this.Text = "DXGameApp";
// Eventhandler
this.KeyUp += new System.Windows.Forms.KeyEventHandler (this.MyKeyUp);
}public void MeineHauptschleife()
{
// Hier wird getan, was getan werden muss....}
// Eventhandler
private void MyKeyUp(object sender, System.Windows.Forms.KeyEventArgs e)
{
// Mit ESC Beende das Programm
if (Keys.Escape == e.KeyCode)
Close();
}
}Ich hab den code noch nicht testen können, er sollte aber funktionieren.
-
-
Hey danke, das funzt vorzüglich, genau wie ich wollte (is ne directx anwendung besser gesagt, es soll noch eine werden.... )