C# 我如何在不同类的异步方法中执行ping和接收ms?
我正在尝试从其他异步类调用一个方法来获取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
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();`对于获取毫秒异步!非常感谢。