- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我一直在查看处理来自 MSMQ 的消息的服务的示例代码。在代码中,在 ReceiveCompletedEventHandler 的开头立即调用 EndReceive() 方法,然后它开始实际处理消息的任务。只是我,还是这完全忽略了 MSMQ 可靠性的要点? EndReceive() 难道不应该只在消息被完全处理后才被调用吗?
最佳答案
EndReceive
仅表示消息已成功传递 - 它并不暗示您是否能够使用它做任何有值(value)的事情。
听起来您正在考虑从 MSMQ 进行异步事务读取,在这种情况下,您只会在完全处理您的消息后完成收据(一劳永逸地从队列中删除消息),无论这在您的上下文中意味着什么.但是异步事务读取是不可能的 - 请参阅 MSDN documentation :
Do not use the asynchronous call BeginReceive with transactions. If you want to perform a transactional asynchronous operation, call BeginPeek, and put the transaction and the (synchronous) Receive method within the event handler you create for the peek operation.
关于.net - 我应该什么时候调用 MessageQueue.EndReceive()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4218370/
我正在尝试使用 Socket.BeginReceive(...) 和 Socket.EndReceive(...) 作为我的 UDP 数据包接收器客户端。它按预期接收和处理数据包,但是,当我希望取消和
我是编程新手,对异步套接字编程感到困惑。 例如,假设我有两个 BeginSend,一个接一个。第一个发送一百万个字符,第二个仅发送 64 个字符。 由于异步性质,第二个 BeginSend 不会在第一
我一直在查看处理来自 MSMQ 的消息的服务的示例代码。在代码中,在 ReceiveCompletedEventHandler 的开头立即调用 EndReceive() 方法,然后它开始实际处理消息的
当以 1024 字节的 block 读取数据时,我如何继续从接收大于 1024 字节的消息的套接字中读取数据,直到没有数据为止?我是否应该只使用 BeginReceive 只读取数据包的长度前缀,然后
我的 TCP 客户端在接收数据时卡住了。 已建立连接 客户端发送 21 个字节。 (见#5) 客户端上的下一个 BeginReceive 调用永远不会调用回调。当我强制它调用 EndReceive 时
关于 microsoft site您可以找到 ReadCallback(IAsyncResult) 的代码 static void ReadCallback(IAsyncResult ar) {
我正在套接字上进行以下 BeginReceive 调用: m_socket.BeginReceive(m_buffer, 0, m_buffer.Length, SocketFlags.Partial
要从套接字异步接收数据,.Net 支持对称的 BeginReceive/EndReceive 调用。基本上你调用BeginReceive()开始监听并确定数据到达时应调用的回调。在回调中调用 EndR
Socket.BeginReceive/EndReceive 函数的调用顺序是什么? 例如,我两次调用 BeginReceive,一次是为了获取消息长度,第二次是为了获取消息本身。现在的场景是这样的,
我需要接收异步消息。 在所有消息中,前 2 个字节表示下一个字节数组的长度。我的问题是在少数情况下我会收到意外的数据包。 如果我使用 Thread.Sleep(200)这个问题不会发生,或者很少发生。
问题: 当我做这样的事情时: for (int i = 0; i < 100; i++) { SendMessage( sometSocket, i.ToString()); Thre
背景: 我正在编写的应用程序使用异步套接字(使用 BeginSend、EndSend、BeginReceive、EndReceive)在彼此之间发送数据。 IPV4 上的套接字是 TCP,没有套接字标
我正在开发一个 C# 程序,我想在其中与 wifi 模块 ( RN 171 ) 交谈。 在我的 Program.cs 中,当我收到 RabbitMQ 消息时,我直接调用我的 Start 方法。 我从
我无法从文档中看出这两者之间的区别: Socket.EndReceive Method (IAsyncResult, SocketError) Socket.EndReceive Method (IA
我在 Windows 服务中使用异步回调来接收网络上的 UDP 数据广播。 回调使用 UDPClient.EndReceive() 方法来结束挂起的异步接收。在服务 OnStop() 方法期间,我 U
我在 SubscriptionClient 上调用 BeginReceive(),如下所示: client.BeginReceive(new TimeSpan(6, 0, 0), new AsyncC
我正在尝试实现包装器类,它将简单地连接到 TCP 服务器并等待数据。一旦数据从服务器提交 - 我将收到此数据并将其传递给我类(class)的订阅者。 这一切都有效。现在我想添加外部功能以在计时器上“重
我在 Windows 服务中使用 MSMQ。 当服务暂停时,我想关闭 MSMQ 并在服务恢复时重新打开它。 代码如下所示: 开始 _mq.ReceiveCompleted += this.Receiv
这与我上一个问题类似。我正在制作一个简单的 tcp/ip 聊天程序,但在使用 EndReceive Callback 函数时遇到了一些困难。我粘贴了 Microsoft 的实现(见下文),我注意到如果
我正在使用 Service Bus 2.1 For Windows Server,并且我有一种异步接收消息的方法。 我的方法的主体是: var waitTimeout = TimeSpan.FromS
我是一名优秀的程序员,十分优秀!