| 4D v18Milliseconds | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|  | 
    4D v18
 Milliseconds 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Milliseconds -> 戻り値 | ||||||||
| 引数 | 型 | 説明 | ||||||
| 戻り値 | 倍長整数 |   | マシンが起動されてからの 経過ミリ秒数 | |||||
Milliseconds は、マシンが起動されてから経過したミリ秒 (1/1000秒) 数を返します。
返される値は符号付き倍長整数であり、最大2の31乗(約20億ミリ秒、または約24日間相当)です。マシンが24日を超えて実行され続けた場合、返される数値は負の値になります。
このコマンドの目的は、短い時間を高い精度で計測することにあります。その意味では24日という長さは比較のためには十分な期間に思えますが、注意すべき点があります。それは値を比較する際、2つの値の差異を計算して比較するようにするということです。値を直接比較してはいけません。一つの値は負の値で、もう一つが正の値を取っている可能性があるからです。
以下のコードは、ロックされたレコードがアンロックされるまで5秒間待ち、アンロックされていなければ終了します:
 If(Locked([Table_1]))
    $starttime:=Milliseconds
    Repeat
       DELAY PROCESS(Current process;15)
       LOAD RECORD([Table_1])
       $waittime:=Milliseconds-$starttime
    Until(Not(Locked([Table_1]))|(Process aborted)|($waittime>5000)) //最大で5秒待つ
 End if注: 上記コード内にある様に、必ず2回のMilliseconds の呼び出しの差異を比較してください。以下の様に直接比較することは絶対にしてはいけません:
 (Milliseconds>($starttime+5000)) //この比較は決してしてはいけません。1つは正の値、1つは負の値を取りうるからです
	プロダクト: 4D
	テーマ: 日付と時間
	番号: 
        459
        
        
        
	
	初出: 4D v6
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	ランゲージリファレンス ( 4D v18)
	
	
	
	
	
 コメントを追加
コメントを追加