mam ikonę w zasobniku, który wymaga, aby wyświetlić dwie ikony:C# gwintowania i odpytywania
- Jeśli nie ma połączenia z siecią, wyświetla zielone kółko ze znakiem wyboru
- Jeśli nie ma połączenia sieciowego, wyświetlane czerwone kółko z X
Więc co mam to:
using System.Net.NetworkInformation;
bool isConnected = NetworkInterface.GetIsNetworkAvailable()
więc jestem cienki Król rozpoczęciem nowego wątku lub przy wykorzystaniu postępu tle Pracownik ponieważ ikona w zasobniku jest NotifyIcon który jest składnikiem, więc nie mogę użyć:
Form.Invoke(delegate, object[])
aby zaktualizować właściwość ikona klasy NotifyIcon.
Moja dużym problemem jest proces odpytywania: Mógłbym napisać jakąś logikę, która robi:
while (true)
{
System.Threading.Thread.Sleep(1000);
isConnected = NetworkInterface.GetIsNetworkAvailable();
if (isConnected)
notifyIcon.Icon = "ConnectedIcon.ico";
else
notifyIcon.Icon = "DisconnectedIcon.ico";
}
ale widziałem kilka artykułów, które mówią mi się trzymać z dala od snu (1000). Nie mogę znaleźć tych artykułów, ponieważ ich nie dodałem do zakładek. Po prostu ciekawi mnie, dlaczego nie jest to dobry pomysł na sondowanie w wątku.
Nie ma sensu spalanie coś tak drogie, jak na tego wątku. Po prostu użyj timera. –
Zobacz http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts –