持续更新标签颜色

Continuously updating label color

我正在展示是否有人通过永远在线的 VPN 连接 - 绿色 = 已连接,红色 = 断开连接。 但是,这仅在应用程序启动时有效,我希望它能够不断更新标签的颜色,如果它突然断开连接并且当您再次连接它时

代码如下:

public bool CheckForVPNInterface()
        {
            if (NetworkInterface.GetIsNetworkAvailable())
            {
                NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();

                foreach (NetworkInterface networkInterfaces in interfaces)
                {
                    if (networkInterfaces.Description.Contains("Always-On VPN") && networkInterfaces.OperationalStatus == OperationalStatus.Up)
                    {
                        Label_Connection.BackColor = Color.Green;
                        Button_ConnectVPN.Text = "Disconnect";
                        return true;
                    }
                    else
                    {
                        Label_Connection.BackColor = Color.Red;
                        Button_ConnectVPN.Text = "Connect";
                    }
                }
                
            }
            return false;    
        }

提前致谢!

也许这个函数只在应用程序启动时被调用一次。可能需要使用计时器在一定时间内尝试此过程。

aTimer = new System.Timers.Timer();
aTimer.Interval = 500; //doing a check every half second
aTimer.Elapsed += CheckForVPNInterface;

aTimer.Elapsed += CheckForVPNInterface; 此代码将每半秒自动 运行。

但我不建议将此操作称为异步操作。会有错误。这将需要更改代码中的某些地方。为此,您需要在 UI 小部件中调用它应该工作的位置。