C# Xamarin表单-WCF已完成事件未更改组件
目前我正在使用WCF开发Xamarin.Forms应用程序。该应用程序连接到WCF主机,我得到一个响应,但我不能对响应结果做任何事情 我认为处理响应的方法代码是:C# Xamarin表单-WCF已完成事件未更改组件,c#,wcf,xamarin,label,xamarin.forms,C#,Wcf,Xamarin,Label,Xamarin.forms,目前我正在使用WCF开发Xamarin.Forms应用程序。该应用程序连接到WCF主机,我得到一个响应,但我不能对响应结果做任何事情 我认为处理响应的方法代码是: private static void ClientOnGetHelloDataCompleted(object sender, GetHelloDataCompletedEventsArgs getHelloDataCompletedEventArgs) { string msg = null; if(getHelloDataCo
private static void ClientOnGetHelloDataCompleted(object sender, GetHelloDataCompletedEventsArgs getHelloDataCompletedEventArgs)
{
string msg = null;
if(getHelloDataCompletedEventArgs.Error != null)
{
msg = getHelloDataCompletedEventArgs.Error.Message;
}
else if(getHelloDataCompletedEventArgs.Cancelled != null)
{
msg = "Request was cancelled";
}
else
{
lblText.Text = getHelloDataCompletedEventArgs.Results.Name;
}
}
调试时可以看到结果。Name已填充,但由于某些原因,它不会更新名为lblText的标签
此方法位于de App.cs(Xamarin Forms portable项目)中
这里有人能帮我解决这个问题吗?你应该刷新主线程中的U.I,这是修复方法
else
{
InvokeOnMainThread(() => lblText.Text = getHelloDataCompletedEventArgs.Results.Name);
}
您正在更新UI线程上的lblText吗?我如何知道我在UI线程上?我尝试了很多东西,比如InvokeOnMainThread(()=>{//操纵UI控件});但似乎没有任何东西可以更新标签。您是否尝试过Xamarin.Forms.Device.BeginInvokeOnMainThread?在获得蓝屏后,它突然开始工作。我认为Mac创建新版本的应用程序可能有问题。我发现调试在那个版本甚至不可能命中的断点处停止。似乎与Xamarin.Forms.Device.BeginInvokeOnMainThread:一起工作)