我希望每隔6小时从订阅中检索并将订阅源存储到DB.我想在后台有一个计时器线程来完成这个任务.
什么是最好的方式?普通的计时器线程或Quartz API?
我有一个我无法弄清楚的设计问题.这是我得到的:
一般来说,我有两种常见类型的对象Strikes和Options.这些已被抽象为IStrike和IOption两个接口.
假设IOption有以下几个字段,实际上大约有10倍,但我们可以使用以下三个来说明问题.
interface IOption
{
double Bid{get;set;}
double Ask{get;set;}
double ImpliedVol{get;set;}
}
interface IStrike
{
IOption Call{get;set;}
IOption Put{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
现在,这一切都很好,但是让我说我已经有了以下方法来对IOption隐含卷执行一些"数学"
public double SquareImpliedVol(IOption opt)
{
return Math.Pow(opt.ImpliedVol,2);
}
Run Code Online (Sandbox Code Playgroud)
同样,不是问题,但是当我为我的测试编写一些模拟对象时,我不清楚是否需要实现Bid和Ask.我没有,但我不知道除非我知道SquareImpliedVol里面的内容,这意味着我正在编写针对代码的测试,这很糟糕.
所以为了解决这个问题,我可以创建另一个只包含ImpliedVol属性的接口IOptionImpliedVol,然后让IOption继承自IOptionImpliedVol,就像这样
interface IOption : IOptionImpliedVol
{
double Bid{get;set;}
double Ask{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
然后我们可以切换SquareImpliedVol
public double SquareImpliedVol(IOptionImpliedVol opt)
{
return Math.Pow(opt.ImpliedVol,2);
}
Run Code Online (Sandbox Code Playgroud)
而且我们很棒.我可以写模拟对象,一切都很甜蜜.除了....我想编写一个将在List上运行的方法,但我需要的唯一属性是IStrike,它是Call.ImpliedVol和Put.ImpliedVol.我想创造类似的东西
interface IStrikeImpliedVol
{
IOptionImpliedVol Call;
IOptionImpliedVol Put;
}
Run Code Online (Sandbox Code Playgroud)
然后我也可以
interface IStrike : IStrikeImpliedVol
{
IOption Call;
IOption Put;
}
Run Code Online (Sandbox Code Playgroud)
除非这不合法.我觉得必须有某种设计模式,我可以解决这个问题,但我陷入了某种组合和继承的网络.
我在我的类定义中有以下枚举:
static class Myclass {
...
public:
enum encoding { BINARY, ASCII, ALNUM, NUM };
Myclass(Myclass::encoding);
...
}
Run Code Online (Sandbox Code Playgroud)
然后在方法定义中:
Myclass::Myclass(Myclass::encoding enc) {
...
}
Run Code Online (Sandbox Code Playgroud)
这不起作用,但我做错了什么?如何正确传递枚举成员,这是在成员方法(以及其他方法)的类中定义的?
我正在开发一个rails项目,我们正在运行Flay.得分约为1400,我不确定这究竟意味着什么.我知道0是理想的,但我不确定一个好的目标是什么,以及项目应该是什么样的现实上限.是否有关于评分过程的良好文档以及最终结果是什么?
我从命令行运行xcodebuild,经常更改PRODUCT_NAME以区分版本和服务器端点(即MyProduct.r1234staging).这构建了几个依赖目标,这些目标是静态库,然后是最终应用程序.在xcode 3版本的命令中,PRODUCT_NAME仅影响最终产品,而不影响库.但是现在它似乎也在为库设置这些名称(即构建libMyProduct.r1234staging.a).
这是预期的行为吗?
我已经使用了vb.net表单中的许多控件,包括文本框和组合框,但是我想一次清除所有文本框,而不是为每个文本框键入textbox1.clear().有没有其他方法可以清除我的所有文本框?
我向Android市场推出了一款应用程序.它显示在网站上,但不是当我在Android设备上进入Android市场时.我的帐户显示为已发布,我没有看到任何错误消息. - 特德
在Razor中,加载局部视图时,可以只指定部分视图名称,Razor视图引擎将搜索RazorViewEngine.PartialViewLocationFormats:
@Html.RenderPartial("_PartialView", Model);
Run Code Online (Sandbox Code Playgroud)
实际上将搜索视图引擎中PartialViewLocationFormats中指定的位置,例如
~/Views/Home/_PartialView.cshtml
~/Views/Shared/_PartialView.cshtml
Run Code Online (Sandbox Code Playgroud)
但是,在指定布局时,我似乎被迫指定布局的特定路径:
@Layout = "~/Views/Shared/MyLayout.cshtml";
Run Code Online (Sandbox Code Playgroud)
我想做的是仅按名称指定布局,并通过搜索公共位置列表找到实际布局:
@Layout = "MyLayout";
Run Code Online (Sandbox Code Playgroud)
......但我找不到任何设施.由于我找不到任何关于此的文档,我尝试使用设置RazorViewEngine.MasterLocationFormats,但在查找布局时不使用此属性.
有人知道怎么做这个吗?
Windows窗体是否有任何开源或免费的图形/报告/图表框架?
我一直在阅读Koen Witters 关于不同游戏循环解决方案的详细文章,但是我在使用GLUT实现最后一个时遇到了一些问题,这是推荐的.
在阅读了几篇关于如何实现恒定游戏速度的文章,教程和代码之后,我认为我目前已实现的内容(我将在下面发布代码)是Koen Witters所谓的Game Speed依赖于可变FPS,第二篇关于他的文章.
首先,通过我的搜索经验,有几个人可能有帮助,但不知道什么是GLUT,我将尝试解释(随意纠正我)相关的功能我的这个OpenGL工具包的问题.如果您知道GLUT是什么以及如何使用它,请跳过此部分.
GLUT工具包:
glutDisplayFunc(renderScene)
采用指向一个renderScene()
回调函数,这将是负责呈现的一切.该renderScene()
函数仅在回调注册后调用一次.glutTimerFunc(TIMER_MILLISECONDS, processAnimationTimer, 0)
需要的毫秒数调用回调之前通过processAnimationTimer()
.最后一个参数只是一个传递给计时器回调的值.该processAnimationTimer()
不会叫每个TIMER_MILLISECONDS
但只有一次.glutPostRedisplay()
函数请求GLUT渲染一个新帧,因此每当我们改变场景中的某些内容时我们都需要调用它.glutIdleFunc(renderScene)
可用于注册一个回调renderScene()
(这并没有使glutDisplayFunc()
无关),但应避免使用此功能,因为没有被接收到事件时的空闲回调不断要求,增加了CPU的负载.glutGet(GLUT_ELAPSED_TIME)
函数返回自glutInit
调用(或第一次调用glutGet(GLUT_ELAPSED_TIME)
)以来的毫秒数.那是GLUT的计时器.我知道高分辨率计时器还有更好的选择,但是现在让我们继续使用这个计时器.我认为这是关于GLUT如何渲染帧的足够信息,所以那些不了解它的人也可以投入这个问题来试图帮助它们如果它们像它一样堕落.
目前的实施:
现在,我不确定我是否正确实施了Koen提出的第二种解决方案,游戏速度依赖于可变FPS.相关代码如下:
#define TICKS_PER_SECOND 30
#define MOVEMENT_SPEED 2.0f
const int TIMER_MILLISECONDS = 1000 / TICKS_PER_SECOND;
int previousTime;
int currentTime;
int elapsedTime;
void renderScene(void) {
(...)
// Setup the camera …
Run Code Online (Sandbox Code Playgroud)