簡體   English   中英

C# - SignalR如何刪除我的事件處理程序

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM