Číst v angličtině

Sdílet prostřednictvím


Timeout Třída

Definice

Obsahuje konstanty, které určují nekonečné intervaly časového limitu. Tato třída se nemůže dědit.

C#
public static class Timeout
C#
public sealed class Timeout
C#
[System.Runtime.InteropServices.ComVisible(true)]
public static class Timeout
Dědičnost
Timeout
Atributy

Příklady

Následující příklad ukazuje vlákno, které přejde do režimu spánku po neomezenou dobu a následně se proboulí.

C#
using System;
using System.Security.Permissions;
using System.Threading;

class ThreadInterrupt
{
    static void Main()
    {
        StayAwake stayAwake = new StayAwake();
        Thread newThread = 
            new Thread(new ThreadStart(stayAwake.ThreadMethod));
        newThread.Start();

        // The following line causes an exception to be thrown 
        // in ThreadMethod if newThread is currently blocked
        // or becomes blocked in the future.
        newThread.Interrupt();
        Console.WriteLine("Main thread calls Interrupt on newThread.");

        // Tell newThread to go to sleep.
        stayAwake.SleepSwitch = true;

        // Wait for newThread to end.
        newThread.Join();
    }
}

class StayAwake
{
    bool sleepSwitch = false;

    public bool SleepSwitch
    {
        set{ sleepSwitch = value; }
    }

    public StayAwake(){}

    public void ThreadMethod()
    {
        Console.WriteLine("newThread is executing ThreadMethod.");
        while(!sleepSwitch)
        {
            // Use SpinWait instead of Sleep to demonstrate the 
            // effect of calling Interrupt on a running thread.
            Thread.SpinWait(10000000);
        }
        try
        {
            Console.WriteLine("newThread going to sleep.");

            // When newThread goes to sleep, it is immediately 
            // woken up by a ThreadInterruptedException.
            Thread.Sleep(Timeout.Infinite);
        }
        catch(ThreadInterruptedException e)
        {
            Console.WriteLine("newThread cannot go to sleep - " +
                "interrupted by main thread.");
        }
    }
}

Poznámky

Členy této třídy se používají k určení nekonečných intervalů časového limitu v operacích podprocesů. Infinite používá metody, které přijímají celočíselný millisecondsTimeout parametr, například Thread.Sleep(Int32), Thread.Join(Int32)a ReaderWriterLock.AcquireReaderLock(Int32). InfiniteTimeSpan používá metody, které přijímají timeout parametr typu TimeSpan, například Thread.Sleep(TimeSpan), Thread.Join(TimeSpan)a ReaderWriterLock.AcquireReaderLock(TimeSpan).

Pole

Infinite

Konstanta sloužící k určení nekonečné čekací doby pro metody vytváření vláken, které přijímají Int32 parametr.

InfiniteTimeSpan

Konstanta sloužící k určení nekonečné čekací doby pro metody, které přijímají TimeSpan parametr.

Platí pro

Produkt Verze
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

Bezpečný přístup z více vláken

Tento typ je bezpečný pro přístup z více vláken.

Viz také