C# 队列溢出问题(急,在线等)

问题描述

各位大师:我在一个Sockt编程项目中需要将客户端发送过来的消息放入(remoting对像)队列中等待另一个处理程序来处理。这个消息量特别大,一秒500次以上并发(作客户端监控的),程序在运行三四天后出异常(在入队操作时):System.ArgumentException:Sourcearraywasnotlongenough.ChecksrcIndexandlength,andthearray'slowerbounds.atSystem.Array.Copy(ArraysourceArray,Int32sourceIndex,ArraydestinationArray,Int32destinationIndex,Int32length,Booleanreliable)atSystem.Collections.Queue.SetCapacity(Int32capacity)atSystem.Collections.Queue.Enqueue(Objectobj)atRemoteObject.MyMessageQueue.EnQueue(Objecto)队列出、入队操作都是经过加锁了。是什么原因?

解决方案

解决方案二:
搂主的队列长度超出了整型int的MaxValue
解决方案三:
建议搂主这个队列做成:“队列的队列”模式也就是说:如果一个队列达到最大长度,那么就把数据放到相邻的下一个队列长度判断方法:if(队列.Length>=int.MaxValue){把数据放到下一个队列;}
解决方案四:
Int最大值为2147483647,三四天之内达到这个消息算下来差不多。难道是我的处理程序没有从中读到数据进行处理(也就是没有出队,只有入队)造成的?
解决方案五:
准备学Sockt编程~
解决方案六:
那就不清楚了,要看搂主自己的代码了,估计是没有进行出队操作
解决方案七:
从日志来看肯定是做了出队操作的,因为每条消息在处理完成后,都会记录到日志文件并写到数据库中观察了一下日志,是正常的,处理速度也没有太大的悬殊(入太快,出太慢)。在网上查了些资料说有可能是.net运行库有问题……现在就搞不清楚……郁闷……
解决方案八:
看你的入队频率那么高,有可能是搂主的出队和入队不同步造成的也就是一次入队500个,同时出队才出一个,也会出现搂主的问题的
解决方案九:
嗯,楼上说的有道理。还有就是我在newQueue的时候没有指定增长因子,它默认以2倍的速度递增,Int32的最大值为2147483647那如果当我的元素个数大于2147483647/2时它还会按2培速增长吗?如果在*2的时候超出了Int32的MaxValue会不会出这种异常?这个增长因子最好怎么指定?
解决方案十:
晕,我才发现在处理程序的监听线程中我加了个Thread.Sleep(200);应该是这个问题了。改成Thread.Sleep(5)试试,不过一般一这里的话,应该Sleep(N)多少呢?以避免服务器CPU资源占用100%呢?
解决方案十一:
Int32的最大值为2147483647那如果当我的元素个数大于2147483647/2时它还会按2培速增长吗?肯定会的如果在*2的时候超出了Int32的MaxValue会不会出这种异常?肯定会的最好用默认值
解决方案十二:
噢,看了下,默认值是2另外,用0也可以,在入队的时候要判断count是否已经等于MaxValue了
解决方案十三:
ding
解决方案十四:
回搂主9楼,呵呵,那我就不清楚了,因为不知道搂主具体流程什么的
解决方案十五:

时间: 2024-10-01 18:45:24

C# 队列溢出问题(急,在线等)的相关文章

jsp-百度编辑器1.4.3JSP版 如何修改文件上传路径?急在线等

问题描述 百度编辑器1.4.3JSP版 如何修改文件上传路径?急在线等 RT 默认的上传路径在重启Tomcat的时候会造成图片丢失的情况,请问该如何修改百度编辑器的文件上传路径 急........................在线等 解决方案 在ueditor/jsp/config.json中的 "imagePathFormat": "/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", /* 上传保存

请问这个C++的dll在C#中怎么调呀?急……在线等!

问题描述 请问这个C++的dll在C#中怎么调呀?急--在线等! C++中的调用: extern "C" _declspec(dllimport) int ReadGzjzzData(char* pData,char* photo,int * iErrCode); void CReadGzjzzDlg::OnBnClickedOk() { // TODO: 在此添加控件通知处理程序代码 // OnOK(); char Data[64*1024] = {0};//各字段用双竖"

jquery-jQuery自动排版,急在线等

问题描述 jQuery自动排版,急在线等 一横排8张图片,我隐藏右边jQuery如何让其余图片自动向右靠 解决方案 右浮动布局就好了, <style> .floatright img{float:right;margin-left:5px} </style> <div class="floatright"> <img alt="image1"/> <img alt="image2"/>

mfc文本框edit ctrl光标焦点问题-急在线等-谢谢

问题描述 mfc文本框edit ctrl光标焦点问题-急在线等-谢谢 有2个文本框A,B 文本框A:作为log输出信息窗口,假设不停地输出log信息,我使用setsel.setfocus.replacesel的方法做的末尾追加:文本框B:一个输入的文本框,在文本框A不停输出的前提下,光标焦点老是跑到文本框A的末尾: 问题:文本框B怎么才能在 文本框A不停输出的前提下 获取光标焦点,焦点不跑到A? 谢谢,描述的应该很清楚了,如果不清楚,请追问,再次谢谢. 解决方案 追加文本用不着设置焦点.Send

java-JAVA ATM类 很急 在线等

问题描述 JAVA ATM类 很急 在线等 初学者急求教,题目如下,谢谢大家了 应用Java面向对象概念编写一个银行ATM系统Java应用,要求实现下列功能: 1.查询余额 2.存款 2.取款: 3.转账 应用技术要求: 1.要应用到Java面向对象技术(封装,基础和多态,也可有接口等技术) 2.要求有图形界面作为界面,后台应用非图形界面 3.可应用其他Java技术 解决方案 http://www.atguigu.com/download.shtml 这个链接你点击进去,这里面的免费视频中有个b

字段-有关oracle11g的问题,急在线等

问题描述 有关oracle11g的问题,急在线等 a5107 这个字段数据类型为varchar2 长度为 1 现在有几笔数据显示是没有值的.我用条件 a5107=' ' 或者 a5107=null 或者 a5107 <> '0' 这几个条件都查不到这几笔数据 .不知有没有大神知道原因 解决方案 你用 is null,is not null,试试 解决方案二: a5107 IS NULL

visual studio-VS2013 c++ 编写与导入dll文件 详细求教 急在线等

问题描述 VS2013 c++ 编写与导入dll文件 详细求教 急在线等 首先想明确动态链接库与静态链接库的区别,以及是否可以通过dll与lib文件判断该接口是动态链接库还是静态链接库.如何判断. 其次,想求教如何用VS2013,在完全空白项目下编写dll文件一步步编写一个最简单的类. 最后,如何导入一个已经编好的dll文件 QQ398612945(答好另有酬谢) 解决方案 加我QQ 893277858 给你整个工程的代码... 解决方案二: 动态库和静态库都需要.h .lib文件,动态库还需要

设计-小白求助 C++编程 急 在线等

问题描述 小白求助 C++编程 急 在线等 1.定义一个职工类CWorker,数据成员包括姓名.职工号.工龄.工资:成员函数有构造函数,设置数据成员值的函数,读取数据成员值的函数.在主函数中定义对象数组,再编写一个CWorker类的友元函数,计算平均工资,查找最高工资. 2.设计一个职工类CWorker,成员包括姓名.职工号.工龄.工资及相关的成员函数.由它派生出教师类CTeacher,包括职称,所属部门等属性和相关的成员函数.编写一个主函数,对设计的类进行测试.

请教一下,代码优化问题,急在线等

问题描述 请教一下,代码优化问题,急在线等 @RequestMapping(value = { "/getaddressmg" }) public ModelAndView getAddressMg(HttpServletRequest request, Model model) { ModelAndView view = this.getBaseModelAndView("custom/addressmg/addressmg"); try { CustomInfo