C# 采集大奖章行情数据处理问题

apple8160 2016-12-19 10:06:46
最近在做大奖章(Wind)采集股票行情实时数据,碰到难点,望高手解惑

当前个股个数在3000左右(除掉停牌的估计在2000多个)

wind的代码是


经测试,每次传入股票代码只能少于150个正常

我现在处理方式是把所有股票分成N个150,然后每150个建立1个线程处理

如果多个线程进行处理,那么回调只收到了最后一次提交的数据
现在的问题:
我需要怎么处理,才能发起所有个股,然后回调可以收到所有的数据加入队列来进行处理
...全文
217 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
闭包客 2016-12-20
  • 打赏
  • 举报
回复
这应该是一个简单的线程同步问题。 不过看你的代码没有看到线程是怎么创建的。 应该 w.wsq() 方法里面的问题。
闭包客 2016-12-20
  • 打赏
  • 举报
回复
我对这个很有兴趣。
apple8160 2016-12-20
  • 打赏
  • 举报
回复
有高手帮忙说一下解决思路么?
csdnFUCKINGSUCKS 2016-12-20
  • 打赏
  • 举报
回复
闭包客 2016-12-20
  • 打赏
  • 举报
回复
引用 4 楼 apple8160 的回复:
[quote=引用 3 楼 closurer 的回复:] 这应该是一个简单的线程同步问题。 不过看你的代码没有看到线程是怎么创建的。 应该 w.wsq() 方法里面的问题。
非常感谢你的回答 我的线程是在前面创建的

string[] codes = code.Split('|');//把所有股票没150用“|”分割 ,然后循环,每次创建线程

            
            foreach (var i in codes)
            {
                if (!String.IsNullOrEmpty(i))
                {
                    ParameterizedThreadStart tStart = new ParameterizedThreadStart(StockValueAll);
                    Thread thread = new Thread(tStart);
                    thread.Start(i);
                }
            }
[/quote] 只看代码的话,你这个写法是没有问题的。 我到大奖章网站看了一下, w.wsq() 是他们的 sdk 的方法。估计是读取他们接口的数据的。 不知道他们的 sdk 是不是开源的,这个要调试一下才知道。 也有可能是他们在服务器限制了单个用户的并发调用,虽然这个可能性比较小。
apple8160 2016-12-20
  • 打赏
  • 举报
回复
引用 3 楼 closurer 的回复:
这应该是一个简单的线程同步问题。 不过看你的代码没有看到线程是怎么创建的。 应该 w.wsq() 方法里面的问题。
非常感谢你的回答 我的线程是在前面创建的

string[] codes = code.Split('|');//把所有股票没150用“|”分割 ,然后循环,每次创建线程

            
            foreach (var i in codes)
            {
                if (!String.IsNullOrEmpty(i))
                {
                    ParameterizedThreadStart tStart = new ParameterizedThreadStart(StockValueAll);
                    Thread thread = new Thread(tStart);
                    thread.Start(i);
                }
            }

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧