使用Wind股票的C#接口,但是收不到结果?!!

问题描述

各位好:Wind接口是用来给用户获取实时的股票数据的,小弟要使用的是其中的wsq()方法。因为该接口的C#版本的用户手册貌似没有及时更新,我们这里无法给出具体的语法。(但是该接口提供了一个叫做“命令生成器”的小工具,用于生成调用相关方法的代码。因此,我能确保具体的语法是准确的)小弟使用的代码如下,然而始终得不到接口返回的数据,不知道错在哪里?usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingWAPIWrapperCSharp;//接口dllusingWindCommon;//用于处理返回数据的格式转换,也是接口提供的namespaceWSQ2String{classWSQ2StringSample{//主程序staticvoidMain(){Console.Write("Begin......");Console.ReadLine();//----API登陆WindAPIw=newWindAPI();//生成接口实例Console.WriteLine("NewAPIcreated!");w.start();//登陆接口Console.WriteLine("APIstarted!");//----订阅行情interrorId=0;ulongreqId=w.wsq(referrorId,"150195.sz","rt_date,rt_time,rt_lastest","",myCallback);//调用wsq方法订阅行情Console.WriteLine("errorId={0}",errorId);//加入语句控制用户程序的向后执行Console.ReadLine();//在键入任意键后,我们便可以中止行情的订阅w.cancelRequest(reqId);w.stop();Console.Write("End......");Console.ReadLine();}//回调函数定义staticvoidmyCallback(ulongreqId,WindDatawd){Console.WriteLine("wsqdatagotback......");//WindData类型转换,并输出到屏幕strings=WindDataMethod.WindDataToString(wd,"wsq");//接口提供的用于将其自定义的数据类型转换成stringConsole.Write(s);}}}

以上代码中,我已尽可能的注释了。因为代码的执行功能也非常简单,因此相信大家能够看清楚的。关键是,小弟没有使用回调函数的经验,不知道我的使用中烦了什么错误,导致始终无法得到返回的数据。。。。请各位指教!

解决方案

解决方案二:
补充以下:1、小弟使用上述代码的框架输出了wind接口的其它方法函数的返回数据(是一般的成员方法),没有出现问题。因此,猜想是使用回调函数的过程中产生了错误。2、小弟对回调函数的理解是:我们在调用的订阅行情的方法(wsq)时,提供了用于给接口回调的回调函数(myCallback)。接口将使用另一条线程,调用回调函数,并通过其中的参数wd,来返回我们要查询的数据。而我们的主程序则会停留在readline这一步。3、因此,我们仅需确保在事件触发接口回调时,我们所提供的回调函数仍可以被调用即可!请各位指点以下
解决方案三:
这是我的代码运行的结果:
解决方案四:
呵呵,这如果是WindAPI本身的问题,那么它有可能是在一个“windows桌面应用”上而不是“控制台应用”上设计的。为了避免引入复杂性,你还是创建一个窗口应用吧。我猜你的问题不会发生了。
解决方案五:
修复一下wind插件。
解决方案六:
我想这是因为控制台程序的原因Console.ReadLine();阻塞了主进程运行你换成winform应该就没问题了至于你说的回调函数,在C#里我们理解为委托。有关这块你理解有问题,委托/回调并不基于线程(当然你倒是可以在线程里调用委托,但他本身并不基于线程)
解决方案七:
http://www.docin.com/p-711392084.html
解决方案八:
代码看光只能解决语法问题,还是要能运行才能解决运行过程的问题.
解决方案九:
把myCallback声明为public看看Wind接口不是提供有C#调用说明吗,你看了没有?
解决方案十:
引用8楼xuzuning的回复:

把myCallback声明为public看看Wind接口不是提供有C#调用说明吗,你看了没有?

谢版主回复。。。我考虑了一下,确实,我们提供的回调函数是给接口从我们的类(wsq2stringsample)外部使用的。因此应该声明为public。以下是我们使用该接口自带的命令生成器所得的示范代码:但是,我们将myCallback声明为public后,所得的结果和之前仍是一样的。即输出errorId后,便没有反应了。。。(虽然我们是在股市收盘后调用的,此时价格不会实时更新,但至少应该有首次返回的价格,如同上图命令生成器中返回的,我们也是在收盘后使用命令生成器后,得到的首次价格的输出)还请版主指点
解决方案十一:
引用5楼wanghui0380的回复:

我想这是因为控制台程序的原因Console.ReadLine();阻塞了主进程运行你换成winform应该就没问题了至于你说的回调函数,在C#里我们理解为委托。有关这块你理解有问题,委托/回调并不基于线程(当然你倒是可以在线程里调用委托,但他本身并不基于线程)

感谢您的答复:1、winform我还不会用,需要研究一下,看看如何替代控制台;2、若委托回调不基于线程,你说的“阻塞了主进程的运行”中的“主进程”是指的什么?3、若是进程有分主次,那么异步回调应该也是各管各的执行吧?即是主进程执行readline,当事件触发后接口通过次进程调用myCallback。否则的话,异步回调不是没法实现了吗?请指教
解决方案十二:
1.C#接口库文件C#接口不随安装包一起发布。用户需要从大奖章网站手动下载:http://www.dajiangzhang.com/downloadWind量化平台-接口库文件-C#解压后的文件夹中,WAPIWrapperCSharp.dll为C#库文件;Samples为例子;doc为帮助文档;src为C#接口源代码,有经验的开发者,可以根据自己的需求改进C#接口,甚至开发其它语言的Wind量化接口,比如SaS。2.C#接口使用注意事项在您的程序中直接引用类型库即可编程。使用之前,可以手动通过cmd命令进入Wind安装目录,通过输入regsvr32windmatlab.ocx进行注册,也可以通过Wind终端修复任意wind插件实现。如果您把您编写的程序发布到其他机器使用,请确认在目标机器上已经安装了Microsoft.NetFramework4.0他应该使用了COM组件,但你贴出的代码中看不到这一点
解决方案十三:
有个问题不知你了解过否Wind接口需要用手机号注册,那么他是否会从话费中提取他的服务费?电信的网路电视会,但他从不跟你说
解决方案十四:
引用11楼xuzuning的回复:

1.C#接口库文件C#接口不随安装包一起发布。用户需要从大奖章网站手动下载:http://www.dajiangzhang.com/downloadWind量化平台-接口库文件-C#解压后的文件夹中,WAPIWrapperCSharp.dll为C#库文件;Samples为例子;doc为帮助文档;src为C#接口源代码,有经验的开发者,可以根据自己的需求改进C#接口,甚至开发其它语言的Wind量化接口,比如SaS。2.C#接口使用注意事项在您的程序中直接引用类型库即可编程。使用之前,可以手动通过cmd命令进入Wind安装目录,通过输入regsvr32windmatlab.ocx进行注册,也可以通过Wind终端修复任意wind插件实现。如果您把您编写的程序发布到其他机器使用,请确认在目标机器上已经安装了Microsoft.NetFramework4.0他应该使用了COM组件,但你贴出的代码中看不到这一点

额,我采用类似的框架,调用了wind接口提供的wsi()方法,并成功输出到屏幕;因此,在安装及使用接口方面,我认为应该是没有问题的。。。。主要还是在回调的使用上。

时间: 2016-04-21

使用Wind股票的C#接口,但是收不到结果?!!的相关文章

苹果股票涨1.06%,收报于每股472.69美元

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   硅谷网讯 据国外媒体报道,苹果股价在连续大跌 两天后,受到多头支撑,在美股周四的常规交易中逆市反弹1%.同时,雅虎因宣布月均活跃用户超8亿人,股价大振,并在盘中一度突破30美元整数关口,此为5年半来首次. 苹果股价昨日大跌超5%,激进投资人卡尔·伊坎(Carl Icahn)却逆市大量增持.受此消息刺激,苹果股票在周四出现小幅反弹,成功将股价维持在50日均线和20

.NET中IDisposable接口的基本使用

首先来看MSDN中关于这个接口的说明: [ComVisible(true)] public interface IDisposable { // Methods void Dispose(); } 1.[ComVisible(true)]:指示该托管类型对 COM 是可见的. 2.此接口的主要用途是释放非托管资源.当不再使用托管对象时,垃圾回收器会自动释放分配给该对 象的内存.但无法预测进行垃圾回收的时间.另外,垃圾回收器对窗口句柄或打开的文件和流等非托管资 源一无所知.将此接口的Dispose

我要接入一个支付宝的充值接口 要钱吗?

问题描述 我要接入一个支付宝的充值接口 要钱吗? 网页支付,这种接口要收钱吗? 解决方案 开通需要企业认证,不收费.但是转账本身要收费.如果是个人,你得找公司挂靠. 解决方案二: 看下支付宝主页,有介绍,去看下 解决方案三: 申请需要押金,微信就不需要押金,但需要审核300. 解决方案四: 不要钱的,你可以接个自己的网站.比如凡科 解决方案五: 不要钱的,你可以接个自己的网站.比如凡科 解决方案六: 这种是属于什么的额?支付宝有很多个,我不知道那个-

微信公众号网页能够访问,但注册信息发送不到配置好的接口

问题描述:微信公众号配置,有时可以通过,有时通不过,什么都不改变,在测试阿里云服务器没有问题,在正式的阿里云服务器始终存在该问题,访问网页正常,但是注册信息,用户发送的信息,配置的接口都收不到信息 解决过程: 1.比对测试服务器和正式服务器的配置,一切正常 2.查找Nginx日志,发现有访问记录,但是访问记录后多了一个安全参数,查找资料后说明是安全狗拦截了,将下图中的web防火墙的会话验证模式由中改为低即可,所有问题都解决了

【沉淀】阿里高级专家应答:各种数据在一个统一计算平台上的融合,才能产生更大的价值

"这个没啥好讲的,找XX和XX技术Leader吧?" "为什么挑中我?" "时间点再考虑下吧,要不要等--" -- 当发出云栖专家风采展示邀请时,应答没有直接答应.进一步沟通,你会发现推脱的背后,却是一位实实在在技术大牛的低调和谦逊. 应答认为,分布式系统架构设计为了满足20%高级用户的需求,有可能要提供80%的接口(原因见完整对话) 应答是阿里巴巴技术平台事业部架构与专家咨询的高级专家.架构与专家咨询究竟是什么样的一个岗位?应答做了剖析:本质上

多核时代多线程编程(一)基本策略

1.1问题分析 1.2分工原则 1.2.1确定线程数 1.2.2确定任务的数量 1.3共享可变性 1.4小结 1.5参考资料 大家对并发(concurrency).多线程(Multi-Threading)程序设计肯定不陌生,因为在当今多核CPU时代到处可见,从底层的操作系统(OS)到上层的应用程序,从服务端到客户端,从低级语言到高级程序语言.从分布式集群到大数据处理等等,都可以看到并发程序的身影.可以这样说,只要有计算机软件的地方,就会存在并发程序.大家肯定知道,为何到处都有并发程序?就是因为它

《软件工程方法与实践》—— 导读

前 言 软件工程包含一系列软件开发的基本原理.方法和实践经验,用来指导人们进行正确的软件开发.软件工程强调从工程化的原理出发,按照标准化规程和软件开发实践来引导软件开发人员进行软件开发和实践活动,并进行过程改进,促进软件企业向标准化和成熟化的方向发展.软件工程是一门理论与实践相结合的学科,更注重通过实践来理解原理和方法.为此,我们结合多年的软件工程教学和项目开发经验,通过5个项目实例,从不同的角度.利用不同的方法学来循序渐进地介绍软件开发过程中所涉及的原理.方法和技术.本书的另一个特色是从问题的

新标准发布之后,Type-C数据线就安全了?

日前,Google工程师Benson Leung对市面上的USB Type-C数据线做了测试.样本量很小,只有10条:信息量却很大,其中仅3条能正常连接Chromebook Pixel,另外还有一条则直接烧掉了Chromebook Pixel的USB Type-C端口. 据分析,造成这种状况的原因其实很低级:在这条A转C的数据线上,Surjtech公司将A型插头的GND连到了C型插头的VBUS,而把A型插头的VBUS引脚连到了C型插头的GND,从而造成接口短路.由于这种事件并非个例,亚马逊便开始

新华都慈善之痛

"我向来不惮以最坏的恶意来揣测中国人的!" 鲁迅这句话,如今落在了福建富豪陈发树身上.减持紫金矿业的风波方兴未艾,83亿元的慈善豪举又掀起狂风巨浪! 陈发树的台,唐骏的戏,还真应了那句老话,树大招风. 进也难,退也难.陈发树遭遇之困境,只是中国富豪慈善"特色"的一个新样本,不是起点,也非终点,但其引发的广泛而尖锐的冲突,将那深藏已久的痛处又狠狠地撕开了. 文/本刊记者,李正曦 这是一个很不和谐的题目,但现实本身存在很不和谐的音符. 2009年10月20日下午,新华都