Timer 클래스

정의

지정된 간격으로 스레드 풀 스레드에 대해 메서드를 실행하는 메커니즘을 제공합니다.Provides a mechanism for executing a method on a thread pool thread at specified intervals. 이 클래스는 상속될 수 없습니다.This class cannot be inherited.

public ref class Timer sealed : IDisposable
public ref class Timer sealed : MarshalByRefObject, IAsyncDisposable, IDisposable
public ref class Timer sealed : MarshalByRefObject, IDisposable
public sealed class Timer : IDisposable
public sealed class Timer : MarshalByRefObject, IAsyncDisposable, IDisposable
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class Timer : IDisposable
public sealed class Timer : MarshalByRefObject, IDisposable
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class Timer : MarshalByRefObject, IDisposable
type Timer = class
    interface IDisposable
type Timer = class
    inherit MarshalByRefObject
    interface IAsyncDisposable
    interface IDisposable
[<System.Runtime.InteropServices.ComVisible(true)>]
type Timer = class
    interface IDisposable
type Timer = class
    inherit MarshalByRefObject
    interface IDisposable
[<System.Runtime.InteropServices.ComVisible(true)>]
type Timer = class
    inherit MarshalByRefObject
    interface IDisposable
Public NotInheritable Class Timer
Implements IDisposable
Public NotInheritable Class Timer
Inherits MarshalByRefObject
Implements IAsyncDisposable, IDisposable
Public NotInheritable Class Timer
Inherits MarshalByRefObject
Implements IDisposable
상속
Timer
상속
특성
구현

예제

다음 예제에서는 StatusChecker CheckStatus 시그니처가 대리자와 동일한 메서드를 포함 하는 클래스를 정의 합니다 TimerCallback .The following example defines a StatusChecker class that includes a CheckStatus method whose signature is the same as the TimerCallback delegate. 합니다 state 인수를 CheckStatus 메서드는는 AutoResetEvent 동기화 하는 애플리케이션 스레드를 스레드 풀 스레드가 콜백 대리자를 실행 하는 데 사용 되는 개체입니다.The state argument of the CheckStatus method is an AutoResetEvent object that is used to synchronize the application thread and the thread pool thread that executes the callback delegate. 클래스에는 StatusChecker 두 개의 상태 변수도 포함 됩니다.The StatusChecker class also includes two state variables:

invokeCount
콜백 메서드가 호출 된 횟수를 나타냅니다.Indicates the number of times the callback method has been invoked.

maxCount
콜백 메서드가 호출 되어야 하는 최대 횟수를 결정 합니다.Determines the maximum number of times the callback method should be invoked.

애플리케이션 스레드에 1 초를 기다린 다음 실행 하는 타이머를 만듭니다는 CheckStatus 콜백 메서드 250 밀리초 마다.The application thread creates the timer, which waits one second and then executes the CheckStatus callback method every 250 milliseconds. 될 때까지 애플리케이션 스레드를 차단 합니다 AutoResetEvent 개체의 신호를 받습니다.The application thread then blocks until the AutoResetEvent object is signaled. CheckStatus콜백 메서드가 maxCount 시간을 실행 하면 메서드를 호출 하 여 AutoResetEvent.Set 개체의 상태를 AutoResetEvent 신호 받음으로 설정 합니다.When the CheckStatus callback method executes maxCount times, it calls the AutoResetEvent.Set method to set the state of the AutoResetEvent object to signaled. 처음 이런 애플리케이션 스레드 호출을 Change(Int32, Int32) 메서드 콜백 메서드는 이제 0.5 초 마다 실행 되도록 합니다.The first time this happens, the application thread calls the Change(Int32, Int32) method so that the callback method now executes every half second. 개체가 신호를 받을 때까지 다시 한 번 차단 됩니다 AutoResetEvent .It once again blocks until the AutoResetEvent object is signaled. 이 경우 타이머를 호출 하 여 소멸 됩니다 해당 Dispose 메서드 및 애플리케이션을 종료 합니다.When this happens, the timer is destroyed by calling its Dispose method, and the application terminates.

using namespace System;
using namespace System::Threading;

ref class StatusChecker
{
private:
    int invokeCount, maxCount;

public:
    StatusChecker(int count)
    {
        invokeCount  = 0;
        maxCount = count;
    }

    // This method is called by the timer delegate.
    void CheckStatus(Object^ stateInfo)
    {
        AutoResetEvent^ autoEvent = dynamic_cast<AutoResetEvent^>(stateInfo);
        Console::WriteLine("{0:h:mm:ss.fff} Checking status {1,2}.",
                           DateTime::Now, ++invokeCount);

        if (invokeCount == maxCount) {
            // Reset the counter and signal the waiting thread.
            invokeCount  = 0;
            autoEvent->Set();
        }
    }
};

ref class TimerExample
{
public:
    static void Main()
    {
        // Create an AutoResetEvent to signal the timeout threshold in the
        // timer callback has been reached.
        AutoResetEvent^ autoEvent = gcnew AutoResetEvent(false);

        StatusChecker^ statusChecker = gcnew StatusChecker(10);

        // Create a delegate that invokes methods for the timer.
        TimerCallback^ tcb =
           gcnew TimerCallback(statusChecker, &StatusChecker::CheckStatus);

        // Create a timer that invokes CheckStatus after one second, 
        // and every 1/4 second thereafter.
        Console::WriteLine("{0:h:mm:ss.fff} Creating timer.\n",
                           DateTime::Now);
        Timer^ stateTimer = gcnew Timer(tcb, autoEvent, 1000, 250);

        // When autoEvent signals, change the period to every half second.
        autoEvent->WaitOne(5000, false);
        stateTimer->Change(0, 500);
        Console::WriteLine("\nChanging period to .5 seconds.\n");

        // When autoEvent signals the second time, dispose of the timer.
        autoEvent->WaitOne(5000, false);
        stateTimer->~Timer();
        Console::WriteLine("\nDestroying timer.");
    }
};

int main()
{
    TimerExample::Main();
}
// The example displays output like the following:
//       11:59:54.202 Creating timer.
//       
//       11:59:55.217 Checking status  1.
//       11:59:55.466 Checking status  2.
//       11:59:55.716 Checking status  3.
//       11:59:55.968 Checking status  4.
//       11:59:56.218 Checking status  5.
//       11:59:56.470 Checking status  6.
//       11:59:56.722 Checking status  7.
//       11:59:56.972 Checking status  8.
//       11:59:57.223 Checking status  9.
//       11:59:57.473 Checking status 10.
//       
//       Changing period to .5 seconds.
//       
//       11:59:57.474 Checking status  1.
//       11:59:57.976 Checking status  2.
//       11:59:58.476 Checking status  3.
//       11:59:58.977 Checking status  4.
//       11:59:59.477 Checking status  5.
//       11:59:59.977 Checking status  6.
//       12:00:00.478 Checking status  7.
//       12:00:00.980 Checking status  8.
//       12:00:01.481 Checking status  9.
//       12:00:01.981 Checking status 10.
//       
//       Destroying timer.
using System;
using System.Threading;

class TimerExample
{
    static void Main()
    {
        // Create an AutoResetEvent to signal the timeout threshold in the
        // timer callback has been reached.
        var autoEvent = new AutoResetEvent(false);
        
        var statusChecker = new StatusChecker(10);

        // Create a timer that invokes CheckStatus after one second, 
        // and every 1/4 second thereafter.
        Console.WriteLine("{0:h:mm:ss.fff} Creating timer.\n", 
                          DateTime.Now);
        var stateTimer = new Timer(statusChecker.CheckStatus, 
                                   autoEvent, 1000, 250);

        // When autoEvent signals, change the period to every half second.
        autoEvent.WaitOne();
        stateTimer.Change(0, 500);
        Console.WriteLine("\nChanging period to .5 seconds.\n");

        // When autoEvent signals the second time, dispose of the timer.
        autoEvent.WaitOne();
        stateTimer.Dispose();
        Console.WriteLine("\nDestroying timer.");
    }
}

class StatusChecker
{
    private int invokeCount;
    private int  maxCount;

    public StatusChecker(int count)
    {
        invokeCount  = 0;
        maxCount = count;
    }

    // This method is called by the timer delegate.
    public void CheckStatus(Object stateInfo)
    {
        AutoResetEvent autoEvent = (AutoResetEvent)stateInfo;
        Console.WriteLine("{0} Checking status {1,2}.", 
            DateTime.Now.ToString("h:mm:ss.fff"), 
            (++invokeCount).ToString());

        if(invokeCount == maxCount)
        {
            // Reset the counter and signal the waiting thread.
            invokeCount = 0;
            autoEvent.Set();
        }
    }
}
// The example displays output like the following:
//       11:59:54.202 Creating timer.
//       
//       11:59:55.217 Checking status  1.
//       11:59:55.466 Checking status  2.
//       11:59:55.716 Checking status  3.
//       11:59:55.968 Checking status  4.
//       11:59:56.218 Checking status  5.
//       11:59:56.470 Checking status  6.
//       11:59:56.722 Checking status  7.
//       11:59:56.972 Checking status  8.
//       11:59:57.223 Checking status  9.
//       11:59:57.473 Checking status 10.
//       
//       Changing period to .5 seconds.
//       
//       11:59:57.474 Checking status  1.
//       11:59:57.976 Checking status  2.
//       11:59:58.476 Checking status  3.
//       11:59:58.977 Checking status  4.
//       11:59:59.477 Checking status  5.
//       11:59:59.977 Checking status  6.
//       12:00:00.478 Checking status  7.
//       12:00:00.980 Checking status  8.
//       12:00:01.481 Checking status  9.
//       12:00:01.981 Checking status 10.
//       
//       Destroying timer.
Imports System.Threading

Public Module Example
    Public Sub Main()
        ' Use an AutoResetEvent to signal the timeout threshold in the
        ' timer callback has been reached.
        Dim autoEvent As New AutoResetEvent(False)

        Dim statusChecker As New StatusChecker(10)

        ' Create a timer that invokes CheckStatus after one second, 
        ' and every 1/4 second thereafter.
        Console.WriteLine("{0:h:mm:ss.fff} Creating timer." & vbCrLf, 
                          DateTime.Now)
        Dim stateTimer As New Timer(AddressOf statusChecker.CheckStatus, 
                                    autoEvent, 1000, 250)

        ' When autoEvent signals, change the period to every half second.
        autoEvent.WaitOne()
        stateTimer.Change(0, 500)
        Console.WriteLine(vbCrLf & "Changing period to .5 seconds." & vbCrLf)

        ' When autoEvent signals the second time, dispose of the timer.
        autoEvent.WaitOne()
        stateTimer.Dispose()
        Console.WriteLine(vbCrLf & "Destroying timer.")
    End Sub
End Module

Public Class StatusChecker
    Dim invokeCount, maxCount As Integer 

    Sub New(count As Integer)
        invokeCount  = 0
        maxCount = count
    End Sub

    ' The timer callback method.
    Sub CheckStatus(stateInfo As Object)
        Dim autoEvent As AutoResetEvent = DirectCast(stateInfo, AutoResetEvent)
        invokeCount += 1
        Console.WriteLine("{0:h:mm:ss.fff} Checking status {1,2}.", 
                          DateTime.Now, invokeCount)
        If invokeCount = maxCount Then
            ' Reset the counter and signal the waiting thread.
            invokeCount = 0
            autoEvent.Set()
        End If
    End Sub
End Class
' The example displays output like the following:
'       11:59:54.202 Creating timer.
'       
'       11:59:55.217 Checking status  1.
'       11:59:55.466 Checking status  2.
'       11:59:55.716 Checking status  3.
'       11:59:55.968 Checking status  4.
'       11:59:56.218 Checking status  5.
'       11:59:56.470 Checking status  6.
'       11:59:56.722 Checking status  7.
'       11:59:56.972 Checking status  8.
'       11:59:57.223 Checking status  9.
'       11:59:57.473 Checking status 10.
'       
'       Changing period to .5 seconds.
'       
'       11:59:57.474 Checking status  1.
'       11:59:57.976 Checking status  2.
'       11:59:58.476 Checking status  3.
'       11:59:58.977 Checking status  4.
'       11:59:59.477 Checking status  5.
'       11:59:59.977 Checking status  6.
'       12:00:00.478 Checking status  7.
'       12:00:00.980 Checking status  8.
'       12:00:01.481 Checking status  9.
'       12:00:01.981 Checking status 10.
'       
'       Destroying timer.

설명

대리자를 사용 하 여를 TimerCallback 실행 하려는 메서드를 지정 합니다 Timer .Use a TimerCallback delegate to specify the method you want the Timer to execute. 대리자의 시그니처는 TimerCallback 다음과 같습니다.The signature of the TimerCallback delegate is:

void TimerCallback(Object state)  
void TimerCallback(Object state)  
Sub TimerCallback(state As Object)  

타이머 대리자는 타이머가 생성 될 때 지정 되며 변경할 수 없습니다.The timer delegate is specified when the timer is constructed, and cannot be changed. 메서드는 타이머를 만든 스레드에서 실행 되지 않습니다. 시스템에서 제공 하는 ThreadPool 스레드에서 실행 됩니다.The method does not execute on the thread that created the timer; it executes on a ThreadPool thread supplied by the system.

.NET에는 다양 한 기능을 제공 하는 몇 가지 타이머 클래스가 있습니다..NET includes several timer classes, each of which offers different functionality:

  • System.Timers.Timer-이벤트를 발생 시키고 일정 한 간격으로 하나 이상의 이벤트 싱크에 있는 코드를 실행 합니다.System.Timers.Timer, which fires an event and executes the code in one or more event sinks at regular intervals. 클래스는 다중 스레드 환경에서 서버 기반 또는 서비스 구성 요소로 사용 하기 위한 것입니다. 사용자 인터페이스가 없으며 런타임에 표시 되지 않습니다.The class is intended for use as a server-based or service component in a multithreaded environment; it has no user interface and is not visible at runtime.
  • System.Threading.Timer는 일정 한 간격으로 스레드 풀 스레드에서 단일 콜백 메서드를 실행 합니다.System.Threading.Timer, which executes a single callback method on a thread pool thread at regular intervals. 콜백 메서드는 타이머가 인스턴스화될 때 정의 되며 변경할 수 없습니다.The callback method is defined when the timer is instantiated and cannot be changed. 클래스와 마찬가지로 System.Timers.Timer 이 클래스는 다중 스레드 환경에서 서버 기반 또는 서비스 구성 요소로 사용 하기 위한 것 이며, 사용자 인터페이스가 없으며 런타임에 표시 되지 않습니다.Like the System.Timers.Timer class, this class is intended for use as a server-based or service component in a multithreaded environment; it has no user interface and is not visible at runtime.
  • System.Windows.Forms.Timer (.NET Framework에만 해당) 이벤트를 발생 시키고 일정 한 간격으로 하나 이상의 이벤트 싱크에 있는 코드를 실행 하는 Windows Forms 구성 요소입니다.System.Windows.Forms.Timer (.NET Framework only), a Windows Forms component that fires an event and executes the code in one or more event sinks at regular intervals. 구성 요소에는 사용자 인터페이스가 없으며 단일 스레드 환경에서 사용 하도록 설계 되었습니다. UI 스레드에서 실행 됩니다.The component has no user interface and is designed for use in a single-threaded environment; it executes on the UI thread.
  • System.Web.UI.Timer (.NET Framework에만 해당) 정기적으로 비동기 또는 동기 웹 페이지 포스트백을 수행 하는 ASP.NET 구성 요소입니다.System.Web.UI.Timer (.NET Framework only), an ASP.NET component that performs asynchronous or synchronous web page postbacks at a regular interval.
  • System.Windows.Threading.DispatcherTimer-큐에 통합 되는 타이머 Dispatcher 입니다.System.Windows.Threading.DispatcherTimer, a timer that's integrated into the Dispatcher queue. 이 타이머는 지정 된 시간 간격으로 지정 된 우선 순위를 사용 하 여 처리 됩니다.This timer is processed with a specified priority at a specified time interval.

타이머를 만들 때 메서드를 처음 실행 하기 전까지 대기 하는 시간 (시간)을 지정 하 고 후속 실행 (기간) 사이에 대기 하는 시간을 지정할 수 있습니다.When you create a timer, you can specify an amount of time to wait before the first execution of the method (due time), and an amount of time to wait between subsequent executions (period). Timer클래스는 시스템 클록과 동일한 해상도를 가집니다.The Timer class has the same resolution as the system clock. 즉, 기간이 시스템 클록의 해상도 보다 작은 경우에는 TimerCallback windows 7 및 windows 8 시스템에서 약 15 밀리초 인 시스템 클록의 해상도에서 정의한 간격 마다 대리자가 실행 됩니다.This means that if the period is less than the resolution of the system clock, the TimerCallback delegate will execute at intervals defined by the resolution of the system clock, which is approximately 15 milliseconds on Windows 7 and Windows 8 systems. 메서드를 사용 하 여 기한 시간 및 기간을 변경 하거나 타이머를 사용 하지 않도록 설정할 수 있습니다 Change .You can change the due time and period, or disable the timer, by using the Change method.

참고

을 사용 하는 동안에는 Timer 참조를 유지 해야 합니다.As long as you are using a Timer, you must keep a reference to it. 모든 관리 되는 개체와 마찬가지로,에 대 한 Timer 참조가 없는 경우는 가비지 수집에 적용 됩니다.As with any managed object, a Timer is subject to garbage collection when there are no references to it. 가 여전히 활성 상태 이기 때문에 수집 되지 않습니다 Timer .The fact that a Timer is still active does not prevent it from being collected.

타이머가 더 이상 필요 하지 않은 경우 메서드를 사용 Dispose 하 여 타이머가 보유 하 고 있는 리소스를 해제 합니다.When a timer is no longer needed, use the Dispose method to free the resources held by the timer. Dispose()메서드 오버 로드를 호출한 후에는 타이머가 스레드 풀 스레드에 의해 실행을 위한 콜백을 큐에 대기 하기 때문에 콜백이 발생할 수 있습니다.Note that callbacks can occur after the Dispose() method overload has been called, because the timer queues callbacks for execution by thread pool threads. 메서드 오버 로드를 사용 하 여 Dispose(WaitHandle) 모든 콜백이 완료 될 때까지 대기할 수 있습니다.You can use the Dispose(WaitHandle) method overload to wait until all callbacks have completed.

타이머에 의해 실행 되는 콜백 메서드는 스레드에서 호출 되기 때문에 재진입 이어야 합니다 ThreadPool .The callback method executed by the timer should be reentrant, because it is called on ThreadPool threads. 타이머 간격이 콜백을 실행 하는 데 필요한 시간 보다 작은 경우 또는 모든 스레드 풀 스레드가 사용 중이 고 콜백이 여러 번 큐에 대기 중인 경우 두 스레드 풀 스레드에서 콜백을 동시에 실행할 수 있습니다.The callback can be executed simultaneously on two thread pool threads if the timer interval is less than the time required to execute the callback, or if all thread pool threads are in use and the callback is queued multiple times.

참고

System.Threading.Timer 는 콜백 메서드를 사용 하는 단순 하 고 간단한 타이머 이며 스레드 풀 스레드에서 제공 됩니다.System.Threading.Timer is a simple, lightweight timer that uses callback methods and is served by thread pool threads. 사용자 인터페이스 스레드에서는 콜백이 발생 하지 않으므로 Windows Forms와 함께 사용 하지 않는 것이 좋습니다.It is not recommended for use with Windows Forms, because its callbacks do not occur on the user interface thread. System.Windows.Forms.Timer Windows Forms와 함께 사용 하는 것이 더 좋습니다.System.Windows.Forms.Timer is a better choice for use with Windows Forms. 서버 기반 타이머 기능의 경우 System.Timers.Timer 이벤트를 발생 시키고 추가 기능을 제공 하는를 사용 하는 것을 고려할 수 있습니다.For server-based timer functionality, you might consider using System.Timers.Timer, which raises events and has additional features.

생성자

Timer(TimerCallback)

새로 만든 Timer 개체를 상태 개체로 사용하고 무한 기간 및 무한 만료 예정 시간을 지정하여 Timer 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the Timer class with an infinite period and an infinite due time, using the newly created Timer object as the state object.

Timer(TimerCallback, Object, Int32, Int32)

부호 있는 32비트 정수로 시간 간격을 지정하여 Timer 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the Timer class, using a 32-bit signed integer to specify the time interval.

Timer(TimerCallback, Object, Int64, Int64)

부호 있는 64비트 정수로 시간 간격을 측정하여 Timer 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the Timer class, using 64-bit signed integers to measure time intervals.

Timer(TimerCallback, Object, TimeSpan, TimeSpan)

TimeSpan 값을 사용하여 시간 간격을 측정하여 Timer 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the Timer class, using TimeSpan values to measure time intervals.

Timer(TimerCallback, Object, UInt32, UInt32)

부호 있는 32비트 정수로 시간 간격을 측정하여 Timer 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the Timer class, using 32-bit unsigned integers to measure time intervals.

속성

ActiveCount

현재 활성 상태인 타이머의 수를 가져옵니다.Gets the number of timers that are currently active. 활성 타이머는 미래의 특정 시점에 작동하도록 등록되어 있으며 아직 취소되지 않았습니다.An active timer is registered to tick at some point in the future, and has not yet been canceled.

메서드

Change(Int32, Int32)

부호 있는 32비트 정수로 시간 간격을 측정하여 타이머 시작 시간 및 메서드 호출 사이의 간격을 변경합니다.Changes the start time and the interval between method invocations for a timer, using 32-bit signed integers to measure time intervals.

Change(Int64, Int64)

부호 있는 64비트 정수로 시간 간격을 측정하여 타이머 시작 시간 및 메서드 호출 사이의 간격을 변경합니다.Changes the start time and the interval between method invocations for a timer, using 64-bit signed integers to measure time intervals.

Change(TimeSpan, TimeSpan)

TimeSpan 값으로 시간 간격을 측정하여 타이머 시작 시간 및 메서드 호출 사이의 간격을 변경합니다.Changes the start time and the interval between method invocations for a timer, using TimeSpan values to measure time intervals.

Change(UInt32, UInt32)

부호 없는 32비트 정수로 시간 간격을 측정하여 타이머 시작 시간 및 메서드 호출 사이의 간격을 변경합니다.Changes the start time and the interval between method invocations for a timer, using 32-bit unsigned integers to measure time intervals.

CreateObjRef(Type)

원격 개체와 통신하는 데 사용되는 프록시 생성에 필요한 모든 관련 정보가 들어 있는 개체를 만듭니다.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(다음에서 상속됨 MarshalByRefObject)
Dispose()

Timer의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다.Releases all resources used by the current instance of Timer.

Dispose(WaitHandle)

Timer의 현재 인스턴스에서 사용하는 모든 리소스를 해제하고 타이머가 삭제되면 신호를 보냅니다.Releases all resources used by the current instance of Timer and signals when the timer has been disposed of.

DisposeAsync()

Timer의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다.Releases all resources used by the current instance of Timer.

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
Finalize()

가비지 컬렉션이 회수하기 전에 개체가 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다.Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.

GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetLifetimeService()

이 인스턴스의 수명 정책을 제어하는 현재의 수명 서비스 개체를 검색합니다.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(다음에서 상속됨 MarshalByRefObject)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
InitializeLifetimeService()

이 인스턴스의 수명 정책을 제어하는 수명 서비스 개체를 가져옵니다.Obtains a lifetime service object to control the lifetime policy for this instance.

(다음에서 상속됨 MarshalByRefObject)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
MemberwiseClone(Boolean)

현재 MarshalByRefObject 개체의 단순 복사본을 만듭니다.Creates a shallow copy of the current MarshalByRefObject object.

(다음에서 상속됨 MarshalByRefObject)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)

확장 메서드

ConfigureAwait(IAsyncDisposable, Boolean)

비동기 일회용에서 반환되는 작업을 대기하는 방법을 구성합니다.Configures how awaits on the tasks returned from an async disposable are performed.

적용 대상

스레드 보안

이 형식은 스레드로부터 안전합니다.This type is thread safe.

추가 정보