try
{
var login = ToServiceLogin(lgParameters);
await Task.Factory.FromAsync(loginOperation.BeginLogin,
loginOperation.EndLogin, lgParameters, TaskCreationOptions.None);
}
catch (FaultException fe)
{
Debug.WriteLine(@" {0}", fe.Message);
}
catch (Exception ex)
{
Debug.WriteLine(@" ERROR {0}", ex.Message);
}
Task.Factory.FromAsync
的第一个参数发生编译错误。我已经阅读了几个关于类似问题的线索似乎没有帮助他们都提到具有不同签名的这一点。请指出正确的方向。
使用签名进行编辑
BeginLogin签名
IAsyncResult BeginLogin(PRPClockingXamarin.PRPServiceMobile.LoginParameters loginParams,
AsyncCallback callback, object asyncState);
答案 0 :(得分:2)
有一个冗长的重载列表,但似乎它不匹配你的
IAsyncResult BeginLogin(
LoginParameters loginParams,
AsyncCallback callback,
object asyncState);
作为
的论据 Func<TArg1, AsyncCallback, object, IAsyncResult> beginMethod,
所以我建议为Targ1
,
FromAsync<PRPClockingXamarin.PRPServiceMobile.LoginParameters> (...)
还验证lgParameters的类型是否正确。
答案 1 :(得分:0)
使用FromAsync
时,我通常建议将参数设置为:begin方法,end方法,begin方法参数(回调/状态除外)和null。最终的null是针对状态的:
await Task.Factory.FromAsync(loginOperation.BeginLogin, loginOperation.EndLogin,
lgParameters, null);