Exporter (0) Imprimer
Développer tout

Interlocked.Exchange, méthode (Object%, Object)

Mise à jour : novembre 2007

Définit une valeur spécifiée pour un objet, puis retourne une référence à l'objet d'origine sous la forme d'une opération atomique.

Espace de noms :  System.Threading
Assembly :  mscorlib (dans mscorlib.dll)

public static Object Exchange(
	ref Object location1,
	Object value
)
public static Object Exchange(
	/** @ref */Object location1,
	Object value
)
public static function Exchange(
	location1 : Object, 
	value : Object
) : Object

Paramètres

location1
Type : System.Object%

Variable à laquelle affecter la valeur spécifiée.

value
Type : System.Object

Valeur affectée au paramètre location1.

Valeur de retour

Type : System.Object

Valeur d'origine de location1.

ExceptionCondition
ArgumentNullException

L'adresse de location1 est un pointeur null.

Avec .NET Framework version 2.0, la surcharge de la méthode Exchange<T>(T, T) fournit une alternative de type sécurisé pour les types référence.

L'exemple de code suivant illustre la syntaxe pour l'utilisation de Exchange avec n'importe quel objet de type référence.

using System;
using System.Threading;

class AtomicTest
{
    static void Main()
    {
        AtomicExchange atomicExchange = new AtomicExchange();
        Thread firstThread = 
            new Thread(new ThreadStart(atomicExchange.Switch));
        firstThread.Start();
    }
}

class AtomicExchange
{
    class SomeType{}

    // To use Interlocked.Exchange, someType1 
    // must be declared as type Object.
    object   someType1;
    SomeType someType2;

    public AtomicExchange() 
    {
        someType1 = new SomeType();
        someType2 = new SomeType();
    }

    public void Switch()
    {
        someType2 = (SomeType)Interlocked.Exchange(
            ref someType1, (object)someType2);
    }
}


import System.*;
import System.Threading.*;
import System.Threading.Thread;

class AtomicTest
{
    public static void main(String[] args)
    {
        AtomicExchange atomicExchange = new AtomicExchange();
        Thread firstThread = new Thread(
            new ThreadStart(atomicExchange.Switch));
        firstThread.Start();
    } //main
} //AtomicTest

class AtomicExchange
{
    class SomeType
    {
    } //SomeType

    // To use Interlocked.Exchange, someType1 
    // must be declared as type Object.
    private System.Object someType1;
    private SomeType someType2;

    public AtomicExchange()
    {
        someType1 = new SomeType();
        someType2 = new SomeType();
    } //AtomicExchange

    public void Switch()
    {
        someType2 = ((SomeType)(Interlocked.Exchange(someType1, 
            ((Object)(someType2)))));
    } //Switch
} //AtomicExchange


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professionnel Édition x64, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile pour Smartphone, Windows Mobile pour Pocket PC, Xbox 360

Le .NET Framework et le .NET Compact Framework ne prennent pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

.NET Framework

Pris en charge dans : 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Pris en charge dans : 3.5, 2.0, 1.0

XNA Framework

Pris en charge dans : 2.0, 1.0

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft