C# 我如何在不同类的异步方法中执行ping和接收ms?

C# 我如何在不同类的异步方法中执行ping和接收ms?,c#,winforms,class,asynchronous,methods,C#,Winforms,Class,Asynchronous,Methods,我正在尝试从其他异步类调用一个方法来获取MS,并将其放入标签中 这是我的班级 public SupremePicker() { InitializeComponent(); PlatformStatus obj = new PlatformStatus(); lblTest.Text = obj.Start(); } 这是我在PlatformStatus类中的代码 class PlatformStatus { st

我正在尝试从其他异步类调用一个方法来获取MS,并将其放入标签中

这是我的班级

    public SupremePicker()
    {
        InitializeComponent();
        PlatformStatus obj = new PlatformStatus();
        lblTest.Text = obj.Start();
    }
这是我在PlatformStatus类中的代码

class PlatformStatus
{
    string MS;
    public async Task<string> Start()
    {
        string GCIP1 = "45.164.124.103";

        await Task.Run(() =>
            {
                PlatformStatus obj = new PlatformStatus();
                obj.GamersclubPing(GCIP1);

            });
        return MS;
    }


    public string GamersclubPing(string IPAddress)
    {
        Ping PingIt = new Ping();
        int iTiempoEspera = 2000;
        PingReply PingResponse;
        string GCBR2 = IPAddress;

        PingResponse = PingIt.Send(GCBR2, iTiempoEspera);
        if (PingResponse.Status == IPStatus.Success)
        {
            MS = PingResponse.RoundtripTime.ToString();
        }
        else
        {
            MS = "-1";
        }
        return MS;
    }

}
类平台状态
{
字符串MS;
公共异步任务启动()
{
字符串GCIP1=“45.164.124.103”;
等待任务。运行(()=>
{
PlatformStatus obj=新的PlatformStatus();
目标玩家群(GCIP1);
});
返回MS;
}
公共字符串玩家群集(字符串IP地址)
{
Ping PingIt=新Ping();
int iTiempoEspera=2000;
PingReply PingResponse;
字符串GCBR2=IPAddress;
PingResponse=PingIt.Send(GCBR2,iTiempoEspera);
if(PingResponse.Status==IPStatus.Success)
{
MS=PingResponse.RoundtripTime.ToString();
}
其他的
{
MS=“-1”;
}
返回MS;
}
}
我想在我的FormClass中放入一个字符串(IPAddress),并从我的PlatformStatus类中获取毫秒


我从12小时开始编码,我真的不知道怎么做

您可以使用此重载:
等待Ping.SendPingAsync
来配置和执行Ping,这样您就可以删除那里的几乎所有内容。您不能在构造函数中等待。如果这是一个表单,请使用
Form.Load
事件,使其
异步
,或者在需要Ping结果时使用.Ping Ping=new Ping();PingReply PingReply=等待ping.SendPingAsync(“IPADDRESS”);lblPingGCBR11.Text=pingReply.RoundtripTime.ToString();`对于获取毫秒异步!谢谢您可以
等待Ping.SendPingAsync
使用此重载:,来配置和执行Ping,这样您就可以删除那里的几乎所有内容。您不能在构造函数中等待。如果这是一个表单,请使用
Form.Load
事件,使其
异步
,或者在需要Ping结果时使用.Ping Ping=new Ping();PingReply PingReply=等待ping.SendPingAsync(“IPADDRESS”);lblPingGCBR11.Text=pingReply.RoundtripTime.ToString();`对于获取毫秒异步!非常感谢。