2012-03-09 8 views
1

私は正確なタイマーが必要なHTML5、CSS3、Javascriptでメトロスタイルのアプリを開発しています。 setInterval()は正確ではないため、ここには適合しません。メトロスタイルアプリのJavaScriptの正確なタイマー

私はWindows.System.Threadingで試しましたが、javascriptで実装されていないようです(私はそうは思わないでしょう)。私はまた、次のようなものを試しました:

var date = new Date(); 
    var init = date.getTime(); 
    while(init + someTime < date.getTime()) 
     doNothing(); 
    doSomething(); 

しかし明らかに、それはうまくいきません。

誰でも知っていると思いますか?

ありがとうございました。

+0

あなたが特定の瞬間を待っているように見える( 'INIT + someTime')...どのように'のsetTimeout(コード、遅延) 'は?どのような目的のためにそれは十分正確ではないでしょうか?おそらく別のアプローチが必要かもしれません。 –

+0

いいえ、私は本当にsetInterval()を意味しました。私のコードはsetTimeout()に似ていましたが、これは私が試していたものです。実際のタイマーがバックグラウンドで「タイマー設定」されていなければならないほど正確ではありません – bvaldivielso

+1

あなたは何をしたいのか、具体的には、なぜ 'setInterval'が十分ではないのかを明確にできますか? – Henry

答えて

0

私はこれを行うためにJavascriptで直接利用可能な呼び出しを認識していません。しかし、Win32呼び出しのQueryPerformanceCounterとQueryPerformanceFrequencyをC#またはC++のどちらかでWinRTラッパーを書くことができます。この2つのコールは、私がhigh precision timerを作成するのに役立ちます。

1

私はあなたの質問に従っていますが、実際にはタイマーが適切なタイミングで、フォアグラウンドで、または他の方法であなたのアプリが起動するようにしたいと考えています。

Windows 8 Metroアプリでは、アプリがバックグラウンドに移動したときにコードの実行を停止しない限り、タイマーは失われます。その代わりに、バックグラウンドタスクを使用して、タイムドイベントをトリガーする必要があります。

ドキュメント:http://msdn.microsoft.com/en-us/library/windows/apps/windows.applicationmodel.background.backgroundtaskbuilder.aspx

サンプル:http://code.msdn.microsoft.com/windowsapps/Background-Task-Sample-9209ade9

関連する問題