2

我正在尝试在绑定的 UDP 套接字(DatagramSocket)上取消订阅 MessageReceived 并获取异常。我就是这样注册的:

    EventRegistrationToken myRegToken;
    myRegToken = (mySocket->MessageReceived += ref new TypedEventHandler<DatagramSocket^, 
          DatagramSocketMessageReceivedEventArgs^>(listenerContext, &ListenerContext::OnMessage));

这就是我取消注册的方式:

mySocket->MessageReceived -= myRegToken;

我得到一个异常:在意外的时间调用了一个方法。

我做错了什么?谢谢。

4

2 回答 2

0

不走运,唯一的解决方案似乎是删除 mySocketmySocket = nullptr;并在需要时重新创建它

于 2013-10-12T16:08:01.270 回答
0

只需使用

Socket.Dispose();

这是官方方式,描述如下:

https://msdn.microsoft.com/library/windows/apps/br241358

于 2016-02-02T12:58:46.783 回答