C_Sharp 板


LINE

如题 两个问题 1.Socket send too fast 之前问过有关Socket的问题 不过後来抓出问题好像不在Socket的Connected判断身上 而是当Socket重复送太快的时候 会造成错误然後Socket就断线了 目前如果要送讯息,会把讯息Queue在Arrary里面 然後以100ms去跑一个Timer OnTimer内再用While回圈去把所有Array的讯息都送出去 但好像只要连续送几个讯息就会当了 就算是一来一往,只要区网速度太快也会造成一样问题 这时候该用什麽方法解决比较好? 原本是想说在送一个讯息之後Delay几ms 或者直接将几ms内呼叫的Send指令给pass掉 但这些都不是我要的 有没有办法以最安全的方法,让讯息能以可能的最快时间全部发送出去? 2.Timer overlap 这是另一个问题 一个主Thread里面以100ms跑Timer OnTimer内用foreach跑所有子物件的OnTimer 然後子物件的OnTimer内才会去处理所有各自的事情 原先以为,统一由主Thread去呼叫,可以避免多执行绪的交错问题 结果却发现还是有交错 後来查询跟实验的结果,发现是Timer的Overlap问题 也就是说在还没完成所有子物件的OnTimer之前 100ms就到了所以呼叫第二次的主Thread的OnTimer 然後就跑出了意外的结果 搜寻的结果 尝试使用lock跟timer.stop跟timer.start 的确让交错问题消失了 但产生另一个问题是 当子物件数量一多,整个OnTimer的回圈就变慢很多 造成主Thread无法以100ms稳定的跑 虽然说要做的事应该是需要堆叠完成才对 但不知道有没有办法让主Thread要做的事稳定进行 然後子物件的OnTimer判断独立出来延迟? 还是说这样的想法有根本上的错误? 实际上应该是要把两个Timer分开? --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.128.131.226
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1492418032.A.2C4.html
1F:→ AizawaYuuiti: 好像找到一些关键字 04/17 18:04
2F:→ AizawaYuuiti: 不用Send改用BeginSend,然後sendDone.WaitOne() 04/17 18:04
3F:→ AizawaYuuiti: Timer的部分还在思考... 04/17 18:05
4F:推 s89227: callback? 04/17 19:39
5F:→ Litfal: 你把事情搞得好复杂,你到底想不想让他们非同步(重叠)跑? 04/17 21:16
6F:→ AizawaYuuiti: 现在想法也是有点混乱,有些要同步有些不同步的 04/17 22:40
7F:→ AizawaYuuiti: 主要是主Thread想让他保持100ms跑 04/17 22:41
8F:→ AizawaYuuiti: 但如果里面的子物件使用同步跑且顺序等,数量一多就 04/17 22:41
9F:→ AizawaYuuiti: 会超过100ms,而且越多越久。 04/17 22:42
10F:→ AizawaYuuiti: 但使用非同步的时候,有些判断式是需要侦测其他物件 04/17 22:42
11F:→ AizawaYuuiti: 状态的,然後就会发生两边同时修改同时判断成功 04/17 22:42
12F:→ AizawaYuuiti: 所以才会觉得非同步会造成一些问题。 04/17 22:43
13F:→ Litfal: 听你的说法感觉你不应该用timer 04/17 23:33
14F:→ Litfal: 你看要不要再把问题描述的具体一点,主执行绪100ms是只负 04/17 23:37
15F:→ Litfal: 责启动或加入工作(Task)吗? 04/17 23:37
16F:→ Litfal: 目前看起来你的子工作各自有各自的timer在执行,不太能理 04/17 23:41
17F:→ Litfal: 解你为何要这样做 04/17 23:41
18F:→ ssccg: 例如说把讯息queue在array,然後排程去从array取出来这点就 04/18 14:14
19F:→ ssccg: 怪怪的,通常会直接放进一个BlockingQueue,然後一个thread 04/18 14:14
20F:→ ssccg: 固定从这个queue前端取东西一直送就好,没东西自然会停着等 04/18 14:15
21F:→ ssccg: 要调频率就动这thread没有平行执行的问题 04/18 14:16
22F:→ ssccg: 你还是把需求讲清楚一点,看有没有从根本架构修改的方法 04/18 14:17
23F:推 jizang: Thread+同步, 或者单执行许+非同步 04/18 22:09
24F:推 jinmin88: 回2..在timer要做事情之前用lock(obj){}包住 04/19 01:26
25F:→ jinmin88: 他第二次跑的时候如果发现还在lock..就会skip过去 04/19 01:26
26F:→ Litfal: 你什麽时候有Critical Section进不去就会被跳过的错觉了 04/19 02:36
27F:→ jinmin88: sorry想错了,的确不会skip,刚查了可试Monitor.TryEnter 04/19 13:28
28F:→ AWEN221: 感觉你无法确认OnTimer时上一次TIMER的工作是否做完... 04/24 11:14







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:iOS站内搜寻

TOP