代码之家  ›  专栏  ›  技术社区  ›  touseefbsb

信号R芯轮毂连接兰巴动作

  •  0
  • touseefbsb  · 技术社区  · 6 年前

    我有一个简单的信号核心集线器连接和集线器连接有一个 On 方法,它采用了一个动作处理程序,我现在有一个lambda,如下所示,但我想使用一个事件处理程序,这样我就可以轻松地取消订阅它,并防止任何内存泄漏。

    hubConnection.On<string, string>(ReceiveMethodKey, (user, message) =>
                {
                    var finalMessage = $"{user} says {message}";
                    // Update the UI
                });
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Zer0    6 年前

    使用代理:

    class MyClass : IDisposable
    {
        private Action<string, string> HubConnectionOnDelegate;
    
        private void InitOrSomething()
        {
            //Pointer to a method, anonymous method, whatever...
            HubConnectionOnDelegate = HubConnection_On;
        }
    
        private static void HubConnection_On(string user, string message)
        {
            var finalMessage = $"{user} says {message}";
            // Update the UI
        }
    
        private void Elsewhere()
        {
            hubConnection.On<string, string>(ReceiveMethodKey, HubConnectionOnDelegate);
        }
    
        public void Dispose()
        {
            HubConnectionOnDelegate = null;
        }
    }