我想知道使用相同的异步回调的含义是什么,而不是每次调用BeginReceive时创建一个新的回调。这会产生异常,问题,不良行为吗?
例如:
client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0,
new AsyncCallback(ReceiveCallback), state);
AsyncCallback asyncCallback = new AsyncCallback(ReceiveCallback);
client.BeginReceive(state.buffer, 0, StateObject.BufferSize, 0, asyncCallback, state);
假设创建新的异步回调不在BeginReceive旁边,只调用一次。
答案 0 :(得分:1)
查看AsyncCallback
docs,您会看到在示例中他们使用相同的实例,所以应该没问题。
如果你考虑它AsyncCallback
基本上是一个delegate
,它是某种方法的指针,异步操作需要在完成后调用一些东西,它真的不关心委托是否是重用或不重用,委托指向一些代码,这个回调将被执行。
答案 1 :(得分:0)
我过去使用过同一个,没有遇到任何问题。这应该不重要,因为它只是一个代表。