我有一个 uivewcontroller,它在视图加载时具有事件处理程序。它包含在后台和 UI 中触发的代码,因此对于 UI 代码,我使用 InvokeOnMainThread。它工作正常,直到我导航到另一个控制器并返回它。当事件触发时,它不会执行 UI 代码。每次我推送到这个控制器时,我都会创建它的一个新实例。所以我试着让它只有这个控制器的一个实例,它工作正常!!!!任何人都可以向我解释为什么会发生这种情况??!
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
if (hubConnection == null) {
hubConnection = new HubConnection ("http://" + JsonRequest.IP + ":8070/", "userId=" + userId);
hubProxy = hubConnection.CreateHubProxy ("myChatHub");
hubConnection.EnsureReconnecting ();
//}
if (hubConnection.State == ConnectionState.Disconnected) {
hubConnection.Start ();
}
hubConnection.Received += HandleReceived;
}
}
void HandleReceived (string obj)
{
InvokeOnMainThread (delegate {
discussion.Root [0].Add (new ChatBubble (true, text));
});
}