我写了两个小脚本,F#脚本到应用程序
第一个维护一组证券的当前股票价格字典。我正在使用递归来侦听命名管道。每当名称管道上有可用的东西时,它就会更新安全价格并立即返回并开始监听管道。
第二个定期读取股价从第一个节目的价格缓存一些安全的,并执行来计算。
但我不知道如何让这两个程序进行通信。我不知何故需要让我的第二个程序启动第一个程序,让它在后台运行并在需要时获得价格。
有人能指出我正确的方向吗?
谢谢 -Sudaly
我写了两个小脚本,F#脚本到应用程序
第一个维护一组证券的当前股票价格字典。我正在使用递归来侦听命名管道。每当名称管道上有可用的东西时,它就会更新安全价格并立即返回并开始监听管道。
第二个定期读取股价从第一个节目的价格缓存一些安全的,并执行来计算。
但我不知道如何让这两个程序进行通信。我不知何故需要让我的第二个程序启动第一个程序,让它在后台运行并在需要时获得价格。
有人能指出我正确的方向吗?
谢谢 -Sudaly
他们是否是独立的程序/脚本?
如果不是这样,我会把它们放在同一个程序,并使用异步/代理运行两个任务。
下面是该战略的启动,博客:
基本上一个代理只是位于一个循环:从管道异步读取,更新价格
其它药剂位于一个循环:睡一段时间,阅读价格并做计算。或者,这可能只是同步的“主程序”循环。
(根据数据结构,你可能会或可能不会需要协调处理,而其他正在更新一个代理读取。)
事实上,你甚至不需要代理,可以只运行异步在背景中。类似于
// first script
let mutable lastPrice = 0.0
async {
while true do
let! nextval = namedPipe.AsyncRead()
lastPrice <- nextVal
} |> Async.Start
// second script
while true do
System.Threading.Thread.Sleep(1000)
printfn "%f" (calc lastPrice)
如果有帮助。
方法有很多种。
嗯......他们没有要目前单独的计划。但在将来,我可能不得不编写一些其他可以使用价格缓存的应用程序。所以我想只保留价格缓存程序的一个实例,并能够通过多个程序进行引用。 但现在,您的解决方案已足够。谢谢回复 – sudaly 2010-06-11 21:51:47