7
private static void Main(string[] args)
{
    for (;;)
    {
        TemporaryCityTool.TemporaryCityTool.AddCity();
        Console.WriteLine("waiting...");
        Thread.Sleep(3600);
    }
}

なぜ機能しThread.sleepないのですか。私はいつもメッセージを待っています。そのアプリケーションが 10 分待ってから、もう一度続行することを望みます。

4

6 に答える 6

16

Thread.Sleep秒単位ではなくミリ秒単位の値を取るため、これは現在のスレッドに 3.6 秒待機するように指示するだけです。10 分間待ちたい場合は、次を使用します。

Thread.Sleep(1000 * 60 * 10);  // 600,000 ms = 600 sec = 10 min

ただし、これはおそらく の不適切な使用Sleepです。代わりにタイマーを使用することを検討して、次のようなものを取得してください。

// Fire SomeAction() every 10 minutes.
Timer timer = new Timer(o => SomeAction(), null, 10 * 60 * 1000, -1);

詳細については、この StackOverflow スレッドを参照してください。

于 2010-06-19T15:02:53.363 に答える
3

Sleepメソッドの引数はミリ秒単位なので、10 分間スリープさせたい場合は次のようにします。

Thread.Sleep(10 * 60 * 1000);
于 2010-06-19T15:02:48.700 に答える
2

3600 は 3.6 秒です。10 分間スリープさせたい場合は、600000 に設定する必要があります。

Thread.Sleep(1000 * 60 * 10);  // Milliseconds(1000) * Seconds(60) * Minutes(10)

これは次のようになります:

Thread.Sleep(600000);
于 2010-06-19T15:02:21.200 に答える
2

10 分はミリ秒で 600,000 です。スリープは 3.6 秒しかかかりません。多くの場合、タイムスパンを使用する方が明確です。

Thread.Sleep(new TimeSpan(0,10,0));
于 2010-06-19T15:04:35.703 に答える
1

thrad.sleep はミリ秒単位で、10 分は thread.sleep(1000 * 60 * 10) になります

なぜあなたはthread.sleepを使っているのですか?タイマーを使ったほうがいいかもしれません

于 2010-06-19T15:03:34.567 に答える
-1

thx、私の大きな間違い。JohnFeminella私は今スレッドを使用しています。

private static void Main(string[] args)
        {
            Thread thrd1 = new Thread(new ThreadStart(Trmain));

            thrd1.Start();
        }

        private static void Trmain()
        {
            for (; ; )
            {
                Console.WriteLine("waiting 10 minutes...");
                Thread.Sleep(1000 * 60 * 10);
            }
        } 

thx all

于 2010-06-19T15:09:11.540 に答える