[英]C# - SignalR How can I remove my event handler
我是一個C#新手試圖在我的Xamarin IOS應用程序中實現SignalR。
我的代碼很簡單:
_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); };
任何幫助將非常感激。
您正在使用集線器,為什么不使用內置的開/關進行方法調用?
又名:
var doSomething = feeHub.On<int>("doSomething", val => {
// Do something with int val
});
然后刪除它你可以做:
doSomething.Dispose();
如果您真的想要收聽流經集線器的所有數據,那么使用Received是正確的方法,@ Dracanus的答案將起作用。
我可能錯了,但如果你這樣做,它實際上不會取消訂閱該事件。
它沒有在我寫的一個小測試應用程序中。
而是創建一個功能,如
void Connection_Recieved(string obj)
{
}
並做了connection.Recieved + = Connection_Recieved; 和connection.Recieved - = Connection_Recieved;
我不認為匿名事件功能是這里的方式:)
我假設,看看你可以做的代碼示例,
connection.Recieved += OnReceiveData;
connection.Recieved -= OnReceiveData;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.