Baca dalam bahasa Inggris

Bagikan melalui


Timeout Kelas

Definisi

Berisi konstanta yang menentukan interval waktu habis tak terbatas. Kelas ini tidak dapat diwariskan.

C#
public static class Timeout
C#
public sealed class Timeout
C#
[System.Runtime.InteropServices.ComVisible(true)]
public static class Timeout
Warisan
Timeout
Atribut

Contoh

Contoh berikut menunjukkan utas akan tidur untuk waktu yang tak terbatas dan kemudian dibangunkan.

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.");
        }
    }
}

Keterangan

Anggota kelas ini digunakan untuk menentukan interval batas waktu tak terbatas dalam operasi threading. Infinite digunakan oleh metode yang menerima parameter bilangan bulat millisecondsTimeout , seperti Thread.Sleep(Int32), , Thread.Join(Int32)dan ReaderWriterLock.AcquireReaderLock(Int32). InfiniteTimeSpan digunakan oleh metode yang menerima timeout parameter jenis TimeSpan, seperti Thread.Sleep(TimeSpan), , Thread.Join(TimeSpan)dan ReaderWriterLock.AcquireReaderLock(TimeSpan).

Bidang

Infinite

Konstanta yang digunakan untuk menentukan periode tunggu tak terbatas, untuk metode utas yang menerima Int32 parameter.

InfiniteTimeSpan

Konstanta yang digunakan untuk menentukan periode tunggu tak terbatas, untuk metode yang menerima TimeSpan parameter.

Berlaku untuk

Produk Versi
.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

Keamanan Thread

Jenis ini aman untuk utas.

Lihat juga