Timer Klasa

Definicja

Zapewnia mechanizm wykonywania metody w wątku puli wątków w określonych odstępach czasu.Provides a mechanism for executing a method on a thread pool thread at specified intervals. Klasa ta nie może być dziedziczona.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
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class Timer : IDisposable
public sealed class Timer : MarshalByRefObject, IAsyncDisposable, IDisposable
public sealed class Timer : MarshalByRefObject, IDisposable
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class Timer : MarshalByRefObject, IDisposable
[<System.Runtime.InteropServices.ComVisible(true)>]
type Timer = class
    interface IDisposable
type Timer = class
    inherit MarshalByRefObject
    interface IAsyncDisposable
    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
Dziedziczenie
Timer
Dziedziczenie
Atrybuty
Implementuje

Przykłady

W poniższym przykładzie zdefiniowano StatusChecker klasę, która zawiera CheckStatus metodę, której sygnatura jest taka sama jak TimerCallback Delegat.The following example defines a StatusChecker class that includes a CheckStatus method whose signature is the same as the TimerCallback delegate. stateArgument CheckStatus metody jest AutoResetEvent obiektem, który jest używany do synchronizacji wątku aplikacji i wątku puli wątków, który wykonuje delegat wywołania zwrotnego.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. StatusCheckerKlasa zawiera również dwie zmienne stanu:The StatusChecker class also includes two state variables:

invokeCount
Wskazuje, ile razy Metoda wywołania zwrotnego została wywołana.Indicates the number of times the callback method has been invoked.

maxCount
Określa maksymalną liczbę przypadków wywoływania metody wywołania zwrotnego.Determines the maximum number of times the callback method should be invoked.

Wątek aplikacji tworzy czasomierz, który czeka jeden sekund, a następnie wykonuje CheckStatus metodę wywołania zwrotnego co 250 milisekund.The application thread creates the timer, which waits one second and then executes the CheckStatus callback method every 250 milliseconds. Wątek aplikacji jest następnie blokowany do momentu AutoResetEvent zasygnalizowania obiektu.The application thread then blocks until the AutoResetEvent object is signaled. Gdy CheckStatus Metoda wywołania zwrotnego wykonuje maxCount czas, wywołuje AutoResetEvent.Set metodę w celu ustawienia stanu AutoResetEvent obiektu.When the CheckStatus callback method executes maxCount times, it calls the AutoResetEvent.Set method to set the state of the AutoResetEvent object to signaled. Przy pierwszym wykonaniu tej operacji wątek aplikacji wywołuje metodę, Change(Int32, Int32) Aby Metoda wywołania zwrotnego była wykonywana co pół sekundy.The first time this happens, the application thread calls the Change(Int32, Int32) method so that the callback method now executes every half second. Jest on ponownie blokowany do momentu AutoResetEvent zasygnalizowania obiektu.It once again blocks until the AutoResetEvent object is signaled. W takim przypadku czasomierz jest niszczony przez wywołanie jego Dispose metody i zakończenie działania aplikacji.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.

Uwagi

Użyj TimerCallback delegata, aby określić metodę, która ma zostać Timer wykonana.Use a TimerCallback delegate to specify the method you want the Timer to execute. Podpis TimerCallback delegata:The signature of the TimerCallback delegate is:

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

Obiekt delegowany czasomierza jest określany podczas konstruowania czasomierza i nie można go zmienić.The timer delegate is specified when the timer is constructed, and cannot be changed. Metoda nie jest wykonywana w wątku, który utworzył czasomierz; jest ono wykonywane na ThreadPool wątku dostarczanym przez system.The method does not execute on the thread that created the timer; it executes on a ThreadPool thread supplied by the system.

Porada

Platforma .NET zawiera kilka klas czasomierzy, z których każda oferuje różne funkcje:.NET includes several timer classes, each of which offers different functionality:

  • System.Timers.Timer, które uruchamia zdarzenie i wykonuje kod w co najmniej jednym ujścia zdarzeń w regularnych odstępach czasu.System.Timers.Timer, which fires an event and executes the code in one or more event sinks at regular intervals. Klasa jest przeznaczona do użycia jako składnik serwera lub usługi w środowisku wielowątkowym. nie ma interfejsu użytkownika i nie jest widoczny w czasie wykonywania.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, która wykonuje pojedynczą metodę wywołania zwrotnego w wątku puli wątków w regularnych odstępach czasu.System.Threading.Timer, which executes a single callback method on a thread pool thread at regular intervals. Metoda wywołania zwrotnego jest definiowana podczas tworzenia wystąpienia czasomierza i nie można jej zmienić.The callback method is defined when the timer is instantiated and cannot be changed. Podobnie jak w przypadku System.Timers.Timer klasy, ta klasa jest przeznaczona do użycia jako składnik serwera lub usługi w środowisku wielowątkowym. nie ma interfejsu użytkownika i nie jest widoczna w czasie wykonywania.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 (Tylko .NET Framework), składnik Windows Forms, który uruchamia zdarzenie i wykonuje kod w co najmniej jednym ujścia zdarzeń w regularnych odstępach czasu.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. Składnik nie ma interfejsu użytkownika i jest przeznaczony do użytku w środowisku jednowątkowym. jest ono wykonywane w wątku interfejsu użytkownika.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 (Tylko .NET Framework), składnik ASP.NET, który wykonuje asynchroniczne lub synchroniczne ogłaszanie stron sieci Web w regularnych odstępach czasu.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, czasomierz, który jest zintegrowany z Dispatcher kolejką.System.Windows.Threading.DispatcherTimer, a timer that's integrated into the Dispatcher queue. Ten czasomierz jest przetwarzany z określonym priorytetem w określonym przedziale czasu.This timer is processed with a specified priority at a specified time interval.

Podczas tworzenia czasomierza można określić czas oczekiwania przed pierwszym wykonaniem metody (Godzina ukończenia) i czas oczekiwania między kolejnymi wykonaniami (kropką).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). TimerKlasa ma takie samo rozwiązanie jak zegar systemowy.The Timer class has the same resolution as the system clock. Oznacza to, że jeśli okres jest krótszy niż rozdzielczość zegara systemowego, TimerCallback Delegat zostanie wykonany w odstępach czasu zdefiniowanych przez rozwiązanie zegara systemowego, czyli około 15 milisekund w systemach Windows 7 i Windows 8.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. Można zmienić czas i okres obowiązywania lub wyłączyć czasomierz przy użyciu Change metody.You can change the due time and period, or disable the timer, by using the Change method.

Uwaga

Dopóki Timer nie używasz, musisz zachować odwołanie do niego.As long as you are using a Timer, you must keep a reference to it. Podobnie jak w przypadku każdego zarządzanego obiektu, Timer jest on objęty odzyskiwaniem pamięci, gdy nie ma odwołań do niego.As with any managed object, a Timer is subject to garbage collection when there are no references to it. Fakt, że Timer jest nadal aktywny, nie uniemożliwia jego zebrania.The fact that a Timer is still active does not prevent it from being collected.

Gdy czasomierz nie jest już wymagany, użyj metody, Dispose Aby zwolnić zasoby przechowywane przez czasomierz.When a timer is no longer needed, use the Dispose method to free the resources held by the timer. Należy zauważyć, że wywołania zwrotne mogą wystąpić po Dispose() wywołaniu metody przeciążenia, ponieważ czasomierze kolejki wywołania zwrotnego do wykonania przez wątki puli wątków.Note that callbacks can occur after the Dispose() method overload has been called, because the timer queues callbacks for execution by thread pool threads. Można użyć Dispose(WaitHandle) przeciążenia metody, aby poczekać, aż wszystkie wywołania zwrotne zostaną zakończone.You can use the Dispose(WaitHandle) method overload to wait until all callbacks have completed.

Metoda wywołania zwrotnego wykonywana przez czasomierz powinien być współużytkowana, ponieważ jest wywoływana w ThreadPool wątkach.The callback method executed by the timer should be reentrant, because it is called on ThreadPool threads. Wywołanie zwrotne można wykonać jednocześnie w dwóch wątkach puli wątków, jeśli interwał czasomierza jest krótszy niż czas wymagany do wykonania wywołania zwrotnego lub jeśli wszystkie wątki puli wątków są używane, a wywołanie zwrotne jest kolejkowane wielokrotnie.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.

Uwaga

System.Threading.Timer jest prostym, lekkim czasomierzem, który używa metod wywołania zwrotnego i jest obsługiwany przez wątki puli wątków.System.Threading.Timer is a simple, lightweight timer that uses callback methods and is served by thread pool threads. Nie zaleca się używania z Windows Forms, ponieważ jego wywołania zwrotne nie występują w wątku interfejsu użytkownika.It is not recommended for use with Windows Forms, because its callbacks do not occur on the user interface thread. System.Windows.Forms.Timer jest lepszym wyborem do użycia z Windows Forms.System.Windows.Forms.Timer is a better choice for use with Windows Forms. W przypadku funkcji czasomierza opartego na serwerze warto rozważyć użycie System.Timers.Timer , które wywołuje zdarzenia i ma dodatkowe funkcje.For server-based timer functionality, you might consider using System.Timers.Timer, which raises events and has additional features.

Konstruktory

Timer(TimerCallback)

Inicjuje nowe wystąpienie Timer klasy o nieskończonym okresie i nieskończonym czasie oczekiwania, używając nowo utworzonego Timer obiektu jako obiektu stanu.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)

Inicjuje nowe wystąpienie Timer klasy, używając 32-bitowej podpisanej liczby całkowitej w celu określenia interwału czasu.Initializes a new instance of the Timer class, using a 32-bit signed integer to specify the time interval.

Timer(TimerCallback, Object, Int64, Int64)

Inicjuje nowe wystąpienie Timer klasy, używając 64-bitowych liczb całkowitych ze znakiem do mierzenia interwałów czasu.Initializes a new instance of the Timer class, using 64-bit signed integers to measure time intervals.

Timer(TimerCallback, Object, TimeSpan, TimeSpan)

Inicjuje nowe wystąpienie Timer klasy, używając TimeSpan wartości do mierzenia interwałów czasu.Initializes a new instance of the Timer class, using TimeSpan values to measure time intervals.

Timer(TimerCallback, Object, UInt32, UInt32)

Inicjuje nowe wystąpienie Timer klasy, używając 32-bitowych liczb całkowitych bez znaku do mierzenia interwałów czasu.Initializes a new instance of the Timer class, using 32-bit unsigned integers to measure time intervals.

Właściwości

ActiveCount

Pobiera liczbę czasomierzy, które są obecnie aktywne.Gets the number of timers that are currently active. Aktywny czasomierz jest rejestrowany do taktu w pewnym momencie w przyszłości i nie został jeszcze anulowany.An active timer is registered to tick at some point in the future, and has not yet been canceled.

Metody

Change(Int32, Int32)

Zmienia czas rozpoczęcia i interwał między wywołaniami metody dla czasomierza, używając 32-bitowych liczb całkowitych ze znakiem do mierzenia interwałów czasu.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)

Zmienia czas rozpoczęcia i interwał między wywołaniami metody dla czasomierza, używając 64-bitowych liczb całkowitych ze znakiem do mierzenia interwałów czasu.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)

Zmienia czas rozpoczęcia i interwał między wywołaniami metody dla czasomierza przy użyciu TimeSpan wartości do mierzenia interwałów czasu.Changes the start time and the interval between method invocations for a timer, using TimeSpan values to measure time intervals.

Change(UInt32, UInt32)

Zmienia czas rozpoczęcia i interwał między wywołaniami metody dla czasomierza, używając 32-bitowych liczb całkowitych bez znaku do mierzenia interwałów czasu.Changes the start time and the interval between method invocations for a timer, using 32-bit unsigned integers to measure time intervals.

CreateObjRef(Type)

Tworzy obiekt, który zawiera wszystkie istotne informacje wymagane do wygenerowania serwera proxy używanego do komunikacji z obiektem zdalnym.Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(Odziedziczone po MarshalByRefObject)
Dispose()

Zwalnia wszystkie zasoby używane przez bieżące wystąpienie programu Timer .Releases all resources used by the current instance of Timer.

Dispose(WaitHandle)

Zwalnia wszystkie zasoby używane przez bieżące wystąpienie programu Timer i sygnalizuje, kiedy czasomierz został usunięty.Releases all resources used by the current instance of Timer and signals when the timer has been disposed of.

DisposeAsync()

Zwalnia wszystkie zasoby używane przez bieżące wystąpienie programu Timer .Releases all resources used by the current instance of Timer.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
Finalize()

Umożliwia obiektowi podjęcie próby zwolnienia zasobów i wykonywanie innych operacji czyszczenia przed odinstalowaniem ich przez wyrzucanie elementów bezużytecznych.Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.

GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetLifetimeService()
Nieaktualne.

Pobiera bieżący obiekt usługi okresu istnienia, który kontroluje zasady okresu istnienia dla tego wystąpienia.Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(Odziedziczone po MarshalByRefObject)
GetType()

Pobiera Type bieżące wystąpienie.Gets the Type of the current instance.

(Odziedziczone po Object)
InitializeLifetimeService()
Nieaktualne.

Uzyskuje obiekt usługi istnienia w celu kontrolowania zasad okresu istnienia dla tego wystąpienia.Obtains a lifetime service object to control the lifetime policy for this instance.

(Odziedziczone po MarshalByRefObject)
MemberwiseClone()

Tworzy skróconą kopię bieżącego elementu Object .Creates a shallow copy of the current Object.

(Odziedziczone po Object)
MemberwiseClone(Boolean)

Tworzy skróconą kopię bieżącego MarshalByRefObject obiektu.Creates a shallow copy of the current MarshalByRefObject object.

(Odziedziczone po MarshalByRefObject)
ToString()

Zwraca ciąg reprezentujący bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)

Metody rozszerzania

ConfigureAwait(IAsyncDisposable, Boolean)

Określa, jak oczekują oczekiwania na zadania zwracane z asynchronicznej operacji tworzenia.Configures how awaits on the tasks returned from an async disposable are performed.

Dotyczy

Bezpieczeństwo wątkowe

Ten typ jest bezpieczny wątkowo.This type is thread safe.

Zobacz też