C#-signer如何删除事件处理程序
我是一个新手,试图在我的Xamarin IOS应用程序中实现SignalR 我的代码非常简单:C#-signer如何删除事件处理程序,c#,delegates,xamarin.ios,signalr,xamarin,C#,Delegates,Xamarin.ios,Signalr,Xamarin,我是一个新手,试图在我的Xamarin IOS应用程序中实现SignalR 我的代码非常简单: _connection = new Microsoft.AspNet.SignalR.Client.Hubs.HubConnection (Common.signalRAddress); feedHub = _connection.CreateHubProxy ("feedHub"); _connection.Received += data => { OnReceiveData (da
_connection = new Microsoft.AspNet.SignalR.Client.Hubs.HubConnection (Common.signalRAddress);
feedHub = _connection.CreateHubProxy ("feedHub");
_connection.Received += data => { OnReceiveData (data); };
_connection.Start ();
我的问题是如何删除我的代理?
写够了吗
_connection.Received -= data => { OnReceiveData (data); };
任何帮助都将不胜感激。我可能错了,但如果你这样做,它实际上不会取消活动的订阅 不管怎么说,我写的一个小测试应用程序都没有 而是创建一个函数,例如
void Connection_Recieved(string obj)
{
}
并进行连接。Received+=连接\u Received;
和连接。已接收-=已接收的连接
我不认为匿名事件函数在这里是可行的:)
我假设,看看你的代码样本,你可以
connection.Recieved += OnReceiveData;
connection.Recieved -= OnReceiveData;
如果您使用的是集线器,为什么不使用内置的on/off进行方法调用呢 又名:
如果您真的想监听通过集线器传输的所有数据,那么使用Received是正确的方法,@Dracanus的答案将起作用。是。这就是删除代理的方式!可能重复的
var doSomething = feeHub.On<int>("doSomething", val => {
// Do something with int val
});
doSomething.Dispose();