mi hanno un'icona nella barra che ha bisogno di visualizzare due icone:C# threading e sondaggi
- Se non c'è la connettività di rete, visualizzare un cerchio verde con un segno di spunta
- Se non c'è connettività di rete, visualizzare un cerchio rosso con una X
Quindi quello che ho è:
using System.Net.NetworkInformation;
bool isConnected = NetworkInterface.GetIsNetworkAvailable()
Quindi sono sottili re di iniziare un nuovo thread o utilizzando il fondo di avanzamento dei lavoratori perché l'icona della barra è un NotifyIcon che è un componente in modo da non posso usare:
Form.Invoke(delegate, object[])
per aggiornare la proprietà dell'icona della classe NotifyIcon.
La mia grande preoccupazione è il processo di polling: Potrei scrivere una logica che fa:
while (true)
{
System.Threading.Thread.Sleep(1000);
isConnected = NetworkInterface.GetIsNetworkAvailable();
if (isConnected)
notifyIcon.Icon = "ConnectedIcon.ico";
else
notifyIcon.Icon = "DisconnectedIcon.ico";
}
ma ho visto un paio di articoli che mi dicono di stare lontano da sonno (1000). Non riesco a trovare quegli articoli dal momento che non li ho segnalati. Sono solo curioso di sapere perché non è una buona idea per il polling in una discussione.
Non ha molto senso a bruciare qualcosa di costoso come un thread su questo. Basta usare un timer. –
Si prega di consultare http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts –