我的服务调用的WaitingForActivation状态有问题;
我的代码
Public async Task CallService(string path)
{
IRestClient client = new RestClient(config.Ip);
IRestRequest request = new RestRequest(config.MainResources + path, Method.GET);
try
{
await Task.Run(() =>
{
var response = client.Execute<List<string>>(request);
});
}
catch (Exception e)
{
throw;
}
}
但是,响应仍然是WaitingForActivation的状态。
你知道哪里有问题吗? 或者你有什么更好的想法来制作异步方法,它会从休息服务中返回我的响应吗?
感谢您的帮助。 :)
答案 0 :(得分:0)
这可能是范围问题。在C#中如果执行如下代码:
public class MainActivity : Activity
{
Button btnClick;
int response;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
SetContentView (Resource.Layout.Main);
btnClick = FindViewById<Button>(Resource.Id.btnClick);
btnClick.Click += BtnClick_Click;
}
private async void BtnClick_Click(object sender, System.EventArgs e)
{
await Task.Run(() =>
{
int response = 123456;// should be response=123456;
});
var abc = response;//response is 0
}
}
Task.Run
内的代码正确执行。但反应仍为0;您需要删除int
块中的Task.Run
。
如果不是这种情况,很可能是服务调用的问题(请求可能是错误的,或者服务可能返回错误的响应等等),这不能从您发布的内容中告知代码,需要一个基本的演示。