Occurs when an application becomes idle
Czy jeżeli system będzie wykonywał jakąś operację i zajmie ona całe zasoby systemu, aplikacja będzie bezczynna to czy zdarzenie się wykona?!
To jednak oznacza, że zdarzenie OnIdle mimo iż dotyczy bezpośrednio bezczynności aplikacji, to pośrednio jest związane i zależne od bezczynności systemu.
void __fastcall TForm1::Timer1Timer(TObject *Sender)
{
if(coś_tam == coś_tam)
{
zrób_coś;
}
}
void __fastcall TForm1::ApplicationIdle(TObject *Sender, bool &Done)
{
if(coś_tam == coś_tam)
{
zadanie;
}
}
(...) Timer również go nie wykona, ale w odróżnieniu od zdarzenie OnIdle będzie sobie tykał.
Cyfrowy Baron napisał(a):Dokładnie o tym samym napisałem, więc nie rozumie co chcesz przez to powiedzieć.
Spotkałem się z programem, który wykorzystywał zegar i zdarzenie OnIdle, ale było to kwestią wyboru, dlatego zastanawiam się kiedy lepiej jest wykorzystać OnIdle zamiast zegara.
Cyfrowy Baron napisał(a):Ten program to gra Kyoday Mahjong
Dzięki za odpowiedz. Tam jest "czas bezczynności procesora", może chodzi o OnIdle.
-- Typ taktowania: Wybierz twój własny rodzaj taktowania z tego menu. Jest to sprawa bardziej techniczna, ale chodzi o to, że jeśli odpalasz Kyodai na laptopie i martwisz się o użycie czasu procesora, użyj typ taktowania „Threaded”, który jest wolniejszy, ale mniej wymagający. |
__fastcall TForm3::TForm3(TComponent* Owner)
: TForm(Owner)
{
Application->OnIdle = ApplicationIdle;
loginUser = 0;
connectionToServer = 0;
}
void __fastcall TForm3::ApplicationIdle(TObject *Sender, bool &Done)
{
String line = "";
if(loginUser)
line = TCPClient->Socket->ReadLn();
if(line == "Update")
{
ShowMessage(line);
}
// pobierzDystrybutor();
// pobierzProducent();
// pobierzTyp();
}
Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 1 gość