2017-10-11 2 views
0

Ich bin vertraut mit Interlocked.CompareExchange() mit einfachen Objekten. Aber ich möchte es mit dem Mitglied eines Arrays verwenden:Wie kann ich ein Array-Objekt mit Interlocked.CompareExchange verwenden

string[] myArray = new string[] { "A", "B", "C" }; 
string myStr = (string) Interlocked.CompareExchange(ref myArray[0], null, myArray[0]); 
// myArray[0] == null 

Wie kann ich das erreichen?

+1

Und welches Problem haben Sie mit dieser Lösung? – Servy

+0

Nun, alles sieht gut für mich aus. Lief deinen Code und ist völlig in Ordnung. Ich bin mir nicht sicher, ob ich sehe, wo Sie Hilfe brauchen. – Iman

+0

Ich habe meinen ursprünglichen Fehler wirklich falsch verstanden! –

Antwort

1

ich bin mit wie diese

Und das ist die aus

setzen
F B C 

Alles ist in Ordnung.

1

Ich sehe das Problem nicht. Sie legen die erste Zeichenfolge im Array auf null fest. Und deshalb ist es null. So verwenden Sie es:

string[] myArray = new string[] { "A", "B", "C" }; 
string myStr = (string) Interlocked.CompareExchange(ref myArray[0], ASDF /* VALUE */, 
myArray[0]); 
//myArray[0] == "ASDF" <- VALUE YOU SET 
Verwandte Themen