Torna indietro   Hardware Upgrade Forum > Software > Programmazione

TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati
La tecnologia SQD-Mini LED di TCL arriva sul taglio da 65 pollici con la serie C8L: 2040 zone, pannello WHVA 2.0 e un picco che alle rilevazioni delle sonde tocca i 4400 nit nel profilo Filmmaker e un HDR quasi perfetto
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro
Wireless 2.4 GHz, Bluetooth 5.4, cancellazione attiva del rumore, design pieghevole e un'autonomia che mette in imbarazzo prodotti che costano il doppio. Le Maestro 500 non eccellono in nulla, ma offrono tutto. E a questo prezzo è difficile chiedere di più
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine
Dopo anni di attesa e una lunga fase di sviluppo, Noctua entra nel mercato dei dissipatori a liquido AIO con la nuova serie NL-LC1. Forte dell'esperienza maturata nel raffreddamento ad aria, l'azienda austriaca promette di portare la propria filosofia fatta di qualità costruttiva, attenzione ai dettagli e silenziosità anche in questo segmento. Abbiamo provato il nuovo sistema per scoprire se riesce a distinguersi in un mercato ormai molto competitivo.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 13-04-2011, 18:30   #1
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
[C/C++] uscire da un ciclo infinito

solitamente quando imposto un ciclo infinito del tipo

while(1)
{

}

setto in ambiente Borland Builder

bool bAbort = false;

while(1)
{
Application->ProcessMessage();
if(bAbort == true) break;
}

chi mette a true la variabile bAbort è un Button ma lo svantaggio di questa tecnica è che sottrae molte risorse in termini di CPU. So che vi sono metodi molto più precisi per fermare un loop del tipo esposto ma non ne conosco l'implementazione

grazie
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 13-04-2011, 22:33   #2
Torav
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 558
Innanzitutto metti while(!bAbort) oppure while(bAbort == false) perché quel while(1) e poi il break non si può vedere
Non sono un grande esperto di GUI ma per fare una cosa del genere, che io sappia, solitamente si usano più thread e quello che gestisce quel ciclo ha uno sleep di qualche millisecondo in modo che quel tempo macchina possa essere dedicato ad altri thread.
Torav è offline   Rispondi citando il messaggio o parte di esso
Old 14-04-2011, 08:50   #3
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 13002
In genere le GUI hanno un loro thread per gestire gli eventi, e a questi eventi possono essere associate alcune funzioni che fanno da callback.

Ora non so precisamente cosa devi fare, comunque se devi fare un semplice polling è corretto come dice Torav, ti basta mettere una sleep all'interno del ciclo.

Codice:
while(!bAbort)
{
    // fai quello che devi fare
    sleep(10); // dorme 10ms.
}
Ovviamente il periodo del polling dipende da quello che devi fare, e da quanto rapidamente vuoi gestire gli eventi.

Credo che 10-20ms siano un tempo accettabile per l'utente che preme il tasto e vuole immediatamente vedere effettuata un'azione.
WarDuck è offline   Rispondi citando il messaggio o parte di esso
Old 14-04-2011, 11:07   #4
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
Quote:
Originariamente inviato da WarDuck Guarda i messaggi
In genere le GUI hanno un loro thread per gestire gli eventi, e a questi eventi possono essere associate alcune funzioni che fanno da callback.

Ora non so precisamente cosa devi fare, comunque se devi fare un semplice polling è corretto come dice Torav, ti basta mettere una sleep all'interno del ciclo.

Codice:
while(!bAbort)
{
    // fai quello che devi fare
    sleep(10); // dorme 10ms.
}
Ovviamente il periodo del polling dipende da quello che devi fare, e da quanto rapidamente vuoi gestire gli eventi.

Credo che 10-20ms siano un tempo accettabile per l'utente che preme il tasto e vuole immediatamente vedere effettuata un'azione.

grazie a entrambi.

Difatti avendo in esecuzione due thread che ciclano all'infinito, il pulsante che rende bAbort=true; viene interrogato anche senza usare la chiamata a Application->ProcessMessage()
misterx è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


TCL 65C8L, la recensione del SQD-Mini LED da 4400 nit misurati TCL 65C8L, la recensione del SQD-Mini LED da 440...
MSI Maestro 500 Wireless: ANC e 90 ore di autonomia a 70 euro MSI Maestro 500 Wireless: ANC e 90 ore di autono...
NL-LC1 è il primo dissipatore a liquido AIO di Noctua: silenzio è la parola d'ordine NL-LC1 è il primo dissipatore a liquido A...
Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con Android 15 e penna, dal prezzo super Boox Go 10.3 (Gen II) Lumi: il tablet e-ink con ...
Gigabyte MO32U24 OLED: il 4K a 240Hz su un pannello OLED ideale per il gaming Gigabyte MO32U24 OLED: il 4K a 240Hz su un panne...
Questo robot scende di prezzo di circa 1...
Bernie Sanders sfida la Silicon Valley: ...
Gli utenti stanno abbandonando i Galaxy ...
Narwal, prezzi stracciati per il Prime D...
Adobe implementa l'IA agentica ovunque: ...
OpenAI testa ChatGPT for Science: nuovo ...
'Non approvatelo': la Svezia lancia un d...
Snap si divide ancora: dopo i licenziame...
Microsoft e Adobe collaborano per render...
LG OLED evo AI C5 in offerta su Amazon: ...
Un'azienda chiuderà per colpa di ...
Monitor 5K professionale ASUS ProArt a p...
Apple iPhone 17 punta al prezzo giusto: ...
Google Pixel 10a rompe gli schemi: 7 ann...
Epic Games Store e Launcher pronti a rif...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 09:18.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v