草庐IT

采样帧队列

全部标签

c# - 如何从打印机队列中检索作业列表或作业数量?

我正在寻找一种从特定打印机获取作业列表或作业数量的方法。在最好的情况下,我希望有一个“作业对象”代表一个打印作业及其在打印队列中的名称。这是必需的,因为我需要监视打印机的状态,这样我就可以用新的一批文档重新填充打印队列,而不会溢出打印后台处理程序提前致谢!编辑:添加了解决方案的代码片段privateintGetNumberOfPrintJobs(){LocalPrintServerserver=newLocalPrintServer();PrintQueueCollectionqueueCollection=server.GetPrintQueues();PrintQueueprint

c# - 没有订阅者的 RabbitMQ 队列

“持久”和“持久模式”似乎与重新启动有关,而不是与没有订阅者接收消息有关。我希望RabbitMQ在没有订阅者时将消息保留在队列中。当订阅者确实上线时,该订阅者应该收到消息。RabbitMQ可以做到这一点吗?代码示例:服务器:namespaceRabbitEg{classProgram{privateconststringEXCHANGE_NAME="helloworld";staticvoidMain(string[]args){ConnectionFactorycnFactory=newRabbitMQ.Client.ConnectionFactory(){HostName="loc

c# - 我如何拥有写入服务总线队列的异步函数?

我想使用AzureWebJobsSDK创建一个异步函数,它将接收ServiceBus队列输入并写入ServiceBus队列输出。异步方法不能有参数,例如在BlobStorage上,似乎可以通过使用Streams和TextWriters来解决。但是,当我尝试对ServiceBus参数执行相同操作时,我收到异常。publicstaticasyncvoidTransform([ServiceBusTrigger("%InputQueue%")]Stringinput,[ServiceBus("%OutputQueue%")]TextWriteroutput,TextWriterlog)Err

c# - MSMQ - 队列能否在队列进程重启/服务器重启后继续存在

MSMQ排队消息能否在服务/服务器重启后继续存在?我的意思是,如果队列有消息并且服务器要经历硬重启,那么消息在重启后是否仍然在队列中可用? 最佳答案 为此,您必须将消息标记为可恢复。默认情况下,MSMQ消息仅保存在内存中,但可恢复消息会备份到磁盘以启用可靠的MSMQ消息传递。usingSystem.Messaging;MessagerecoverableMessage=newMessage();recoverableMessage.Body="SampleRecoverableMessage";recoverableMessage.

c# - 具有不同消息类型的消息队列

我正在研究Microsoft消息队列以进行进程间跨网络消息传递。但是当我收到一条消息时,我先验不知道我得到的是什么类型的对象,所以代码queue.Formatter=newXmlMessageFormatter(newType[]{typeof(Wibble)});无法应用之前我收到消息是因为我不知道它是否是Wibble。那么如何接收不同的消息类型呢? 最佳答案 您已经在为XmlMessageFormatter使用构造函数重载接受类型的数组。因此,只需将您希望接收的所有类型添加到该数组中,而不是只添加一种类型。queue.Forma

c# - 为什么 GC 会将对象放入终结队列?

据我所知,一旦我实现了类的析构函数,C#中的垃圾收集器就会将类的所有对象放入终结队列。当我阅读GC.Suppresfinalize的文档时,它提到对象header已经为调用finalize设置了位。我想知道为什么GC的实现者必须将所有对象放入队列中,并将内存释放延迟1-2个周期。难道他们释放内存的时候就看一下位标志,然后调用对象的finalize,然后释放内存吗?毫无疑问,我是个白痴,我无法理解GC的工作原理。我提出这个问题只是为了提高我的理解或填补我知识上的空白编辑:如果位标志用于suppressfinalize,GC实现者可以为此目的在对象header中添加另一个标志,不是吗?

c# - 如何以编程方式知道机器上是否启用了消息队列?

我知道当我尝试创建新的MessageQueue时,如果未启用消息队列,系统会抛出InvalidOperationException。但是如何以编程方式知道机器上是否启用了消息队列?我在两个不同的代码库中使用C#2.0和C#4.0。 最佳答案 您可以为此使用System.ServiceProcess,但首先您需要添加对项目的引用Service.ServiceProcess,然后您可以检索所有服务并像这样获得他们的状态:Listservices=ServiceController.GetServices().ToList();Servi

c# - .Net SMTP 队列

有人见过.net电子邮件队列吗?我希望能够指定要通过的SMTP服务器发送、报告问题并在必要或请求时重试电子邮件。理想情况下,我想要一些开源的东西。 最佳答案 如果您在Windows上使用.NET,则可以使用IISSMTP服务。使用SmtpClient并将传递方法设置为pickupdirectory。在这种模式下,SmtpClient将写入SMTP拾取文件夹(类似于c:\inetpub\smtp_root\pickup),而不是尝试自己发送邮件。该文件夹是邮件队列,SMTP服务将处理传递、重试和NDR等。比尝试自己编写要好得多。

c# - RabbitMQ 持久队列不工作(RPC-Server,RPC-Client)

我想知道为什么我的RabbitMQRPC-Client在重启后总是处理死消息。_channel.QueueDeclare(queue,false,false,false,null);应该禁用缓冲区。如果我在RPC客户端中重载QueueDeclare,我将无法连接到服务器。这里有什么问题吗?知道如何解决这个问题吗?RPC-服务器newThread(()=>{varfactory=newConnectionFactory{HostName=_hostname};if(_port>0)factory.Port=_port;_connection=factory.CreateConnectio

c# - 来自队列的大对象堆和字符串对象

我有一个Windows控制台应用程序,它应该可以运行数天和数月而无需重新启动。该应用程序从MSMQ检索“工作”并对其进行处理。有30个线程同时处理一个工作block。来自MSMQ的每个工作block大约为200kb,其中大部分分配在单个String对象中。我注意到,在处理了大约3-4千个这些工作block之后,应用程序的内存消耗高得离谱,消耗了1-1.5GB的内存。我通过探查器运行该应用程序,并注意到大部分内存(可能是gig左右)在大型对象堆中未使用,但结构是碎片化的。我发现这些未使用(垃圾收集)字节中有90%是以前分配的String。然后我开始怀疑来自MSMQ的字符串被分配、使用然后