0

ブロックがtry/catchあり、キャッチ内で一時停止を適用しようとしていますが、どの方法を試しても (一時停止、スレッドスリープ)、単に続行します。メインブロックのすべての一時停止を無視します。これは .NET のバグですか?

catch (Exception ex)
{
    if (maxDelay < 1)
    maxDelay = 1;
    newpause(maxDelay);
    // Pause(maxDelay * 60);
    Current = "Error:" + txt;
    LogUpdater.UpdateLog(f, "Error sending : " + txt + ".");
    System.Threading.Thread.Sleep(10);
    bw.ReportProgress(1);

 }

 public void newpause(int maxDelay)
    {
        for (int i = 0; i < 60; i++)
        {
            System.Threading.Thread.Sleep(maxDelay*1000);
            Application.DoEvents();
        }
    }
4

2 に答える 2

0

次のコードを実行してみてください。それは私の側で動作します。

 class PauseExample
    {
        static void Main(string[] args)
        {
            int a = 90;
            int b = 0;

            try
            {
                int c = a / b;
            }
            catch
            {
                Console.WriteLine("In catch");

                System.Threading.Thread.Sleep(5000); //waits for 5 seconds

                Console.WriteLine("Out of catch");
            }
        }
    }

これが役立つかどうか教えてください!

于 2012-11-26T10:40:11.737 に答える
0

1/10 秒の経過です。

たった 10 ミリ秒で、1000 は 1 秒になります。

System.Threading.Thread.Sleep(1000); // One Second.
于 2012-11-26T10:38:02.757 に答える