我正在尝试重建一个旧的节拍器应用程序,该应用程序最初使用C++中的MFC编写,使用C#在.NET中编写.我遇到的一个问题是让计时器足够准确地"打勾".
例如,假设一个简单的BPM(每分钟节拍数)为120,则计时器应每隔0.5秒(或500毫秒)打勾.然而,使用它作为刻度的基础并不完全准确,因为.NET只能保证计时器在经过的时间过去之前不会打勾.
目前,为了解决上面使用的相同的120 BPM示例,我将刻度设置为100毫秒,并且仅在每5个计时器刻度上播放点击声.这确实提高了准确度,但如果感觉有点像黑客.
那么,获得准确滴答的最佳方法是什么?我知道有更多的计时器可用于Visual Studio中随时可用的Windows窗体计时器,但我并不熟悉它们.
我应该从哪里开始学习版本控制系统?我过去曾经使用过SVN,Team Foundation和Sourcesafe,但我并不觉得我完全掌握它,而且我的团队似乎也没有抓住它.
掌握哪一点最重要?我意识到这与VCS到VCS不同,但是为了这个问题,我们可以假设Subversion是我最感兴趣的VCS.
此外,如果可以的话,请推荐您认为有用的任何有关该主题的书籍.
在我工作的公司,我们做了很多基于文件的事务处理.处理的中心是在多种格式之间转换文件,以适应众多公司的众多系统.
处理几乎总是涉及一个XML阶段,可以包括大量的文本解析,数据库查找,数据转换和数据验证.
目前,执行所有这些任务的程序都已编写,C++并且它们在一台普通服务器上执行速度非常快.我正在研究使用更新的研究生程序员更熟悉的"现代"语言的可能性.(正确的内存分配C++似乎导致了很多新的程序员这些天的问题)
根据提供的简要信息,python等语言是否会提供所需的功能和性能,以及解决出现的内存分配(以及其他各种C++相关的)问题?
我喜欢每次进行更改时都不需要编译程序的想法.我理解解释的语言可能不会达到我们目前获得的相同性能.
我们的系统Linux基于限制了一些选项.
任何关于可用的功能和性能的评论Python或对替代语言的建议都将非常感激.
在制作专门用于在iPhone上观看的网页/网站/应用程序时,有没有人对我有任何好的起点?
我看过Joe Hewitt所制作的模板,还看到了我可以购买的一些模板,我还没有完成.
我想其他人已经开始在这条赛道上,并决定我可能会汲取他们新发现的知识:)
那么,有没有人有任何指针?我很清楚这样的模板/框架使得Web应用程序看起来像本机iPhone应用程序的问题越多,我就越有可能遇到麻烦,因为它不是,但是现在我想要我可以开始构建一个框架,然后在此过程中弄清楚如何使其与众不同,以便被视为Web应用程序以及看起来像本机iPhone应用程序.
具体来说,我正在寻找以下功能:
编辑:为了避免人们只阅读问题并回答,在阅读我的其他回复之前,我将在此处添加我对GPL许可和类似问题的澄清.
我需要使用的框架不能在许可证下分发,这需要我根据类似的许可证授权我自己的项目.GPL许可证系列允许有关库使用的例外,但这不适用于此,因为必要时,我需要使用的框架类型将是所有源代码.
该项目可以轻松容纳商业图书馆.
此外,我不需要像这样的库或框架,看起来很好并且不会过度混淆的示例文件也是受欢迎的.
我试图重建使用最开始写的旧节拍器应用MFC在C++来编写的.NET使用C#.我遇到的一个问题是播放用于表示节拍器"点击"的midi文件.
我在网上发现了一些关于MIDI在.NET中玩的文章,但是大多数文章似乎都依赖于有人拼凑在一起并提供的自定义库.我并不反对使用这些,但我宁愿自己理解这是如何完成的,因为它似乎应该是一个非常微不足道的练习.
那么,我错过了什么吗?或者在.NET应用程序中使用MIDI是否很困难?
我有一个构建脚本,作为该脚本的一部分,它将一个jar文件复制到一个目录,为了方便我们将其称为utils jar.utils jar由另一个构建脚本构建,该脚本位于另一个目录中.我试图做的是让我的构建脚本运行utils构建脚本,以便我可以确保utils jar是最新的.
所以我知道我需要导入utils构建文件.
<import file="../utils/build/build.xml" />
Run Code Online (Sandbox Code Playgroud)
哪个不起作用,因为导入任务与几乎所有其他ant taks不同,不会从basedir运行,它从pwd运行.所以,为了解决这个问题,我有一个小小的,这可以成功导入构建文件
<property name="baseDirUpOne" location=".." />
<import file="${baseDirUpOne}/utils/build/build.xml" />
Run Code Online (Sandbox Code Playgroud)
所以现在我已经解决了我的导入问题,我需要调用任务,这应该很容易:
<antcall target="utils.package" />
Run Code Online (Sandbox Code Playgroud)
请注意,在上面,utils是../utils/build/build.xml的项目名称
我现在遇到的问题是蚂蚁调用没有在../utils/build中执行,所以我需要的,并且无法找到,是一个runat属性或类似的东西,本质上:
<antcall target="utils.package" runat="../utils/build" />
Run Code Online (Sandbox Code Playgroud)
我需要这个的原因是在我的utils构建文件中,选择复制到jar的代码的步骤是基于相对路径,以避免我的ant文件中的硬编码路径.有任何想法吗?
我想在MySQL中创建一个以列表作为参数的存储过程.例如,假设我希望能够在一次调用中为项目设置多个标签,那么我想要做的是定义一个过程,该过程接受项目的ID和要设置的标签列表.但是,我似乎无法找到任何方法来做到这一点,据我所知,没有列表数据类型,但可以以某种方式进行模拟吗?标签列表是否可以是逗号分隔的字符串,可以以某种方式拆分和循环?
你如何处理MySQL存储过程中的列表?
所以我最近一直在讨论C#,所有的Generic Collections让我有些困惑.假设我想表示一个数据结构,其中树的头是一个键值对,然后在它下面有一个可选的键值对列表(但没有比这些更多的级别).这适合吗?
public class TokenTree
{
public TokenTree()
{
/* I must admit to not fully understanding this,
* I got it from msdn. As far as I can tell, IDictionary is an
* interface, and Dictionary is the default implementation of
* that interface, right?
*/
SubPairs = new Dictionary<string, string>();
}
public string Key;
public string Value;
public IDictionary<string, string> SubPairs;
}
Run Code Online (Sandbox Code Playgroud)
传递数据只是一个简单的分流.
PHP NULL和nullPHP 之间有区别吗?有时它们似乎是可以互换的,有时却不是.
编辑:出于某种原因,当我阅读链接到答案中的文档时(在发布此问题之前)我将其视为"区分大小写"而不是"不区分大小写",这就是我首先发布此问题的全部原因.. .