首页 新闻 会员 周边

C#做一个不同的时间间隔发送消息。

0
[已解决问题] 解决于 2016-04-21 09:02

一个服务端程序,多个客户端程序。

服务端程序相对于不同的客户端程序以不同的时间间隔向客户端发送消息。

一个客户端的话,一个timer定时发送消息,但多个客户端不可能创建多个timer吧,

各位大神有没好的想法?

日常上班犯困的主页 日常上班犯困 | 初学一级 | 园豆:192
提问于:2016-01-15 08:05
< >
分享
最佳答案
1

可以试试Quartz.NET,参考:Quartz.NET 入门

奖励园豆:5
dudu | 高人七级 |园豆:30943 | 2016-01-15 10:03

好的 谢谢,我看看。

日常上班犯困 | 园豆:192 (初学一级) | 2016-01-16 15:51
其他回答(5)
0

顶楼上,也可以用这个https://github.com/HangfireIO/Hangfire,轻量级的任务计划

webaspx | 园豆:1973 (小虾三级) | 2016-01-15 11:29

好的 谢谢。

支持(0) 反对(0) 日常上班犯困 | 园豆:192 (初学一级) | 2016-01-16 15:51
0

肯定不能 一个服务器一个timer 了。客户端多了 程序会死掉的。我想一般应该这样,一个timer可以发送多个(具体多少可以提测试),程序总共有 固定个timer 。档有客户端需要发消息的时候,就查看 空闲timer ,启动 发送。档所有timer 都不空闲的时候就只能排队了。 

bos_kg | 园豆:7 (初学一级) | 2016-01-15 17:59

 timer不是这样用得吧?

支持(0) 反对(0) 日常上班犯困 | 园豆:192 (初学一级) | 2016-01-16 15:51

@回到我主怀抱: 因为他说的 timer我就顺便说timer ,这种一般线程池,调度伐进行 平衡的吧。

支持(0) 反对(0) bos_kg | 园豆:7 (初学一级) | 2016-01-18 17:55

@bos_kg: 做过好长时间 可能概念 说的不太对!

支持(0) 反对(0) bos_kg | 园豆:7 (初学一级) | 2016-01-18 17:55
0

通信的 严重建议使用socket的 如果不想自己写 可以使用开源的socket框架。

s_p | 园豆:138 (初学一级) | 2016-01-17 00:38
0

可以用一个Timer,时间间隔为一个最小原子(比如1s), 代码类似如下:

int currentSecond = DateTime.Now.Second;
            if (currentSecond % 3 == 0)
            {
      
            }
            else if (currentSecond % 5 == 0)
            {

            }

术业源于专攻 | 园豆:204 (菜鸟二级) | 2016-01-18 14:38
0

timer事件外加全局变量Indes

timer事件中Indes+1

foreach(client)

{

  Indes=client.Index;

  发送消息

}

if(Indes>client.Count)

  Indes=0;

bestzhao点com | 园豆:204 (菜鸟二级) | 2016-01-21 10:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册