ฉันอ่านเอกสาร MSDNแต่ไม่เข้าใจจริงๆ
ฉันเชื่อว่าพฤติกรรมของSet
คือ "แทนที่ที่มีอยู่หรือเพิ่ม" (atomically)
ถูกต้องหรือไม่
ฉันอ่านเอกสาร MSDNแต่ไม่เข้าใจจริงๆ
ฉันเชื่อว่าพฤติกรรมของSet
คือ "แทนที่ที่มีอยู่หรือเพิ่ม" (atomically)
ถูกต้องหรือไม่
คำตอบ:
Add
ไม่ทำอะไรเลย (ส่งคืนfalse
) หากมีค่าสำหรับคีย์นั้นอยู่แล้ว Set
แทรกหรืออัปเดตตามความจำเป็น
Remove
+ Add
จะทิ้งช่องว่างไว้ตรงกลางเมื่อเธรดอื่นค้นหาคีย์นั้นจะไม่ได้รับเบาะแส ( Set
ไม่โดยทั่วไปการแลกเปลี่ยนจะเป็นอะตอม) ด้วยเหตุนี้ในขณะที่Set
มีผลลัพธ์สุดท้ายเช่นเดียวกับRemove
+ Add
แต่ความแตกต่างของกลไกจึงมีความสำคัญเนื่องจากอาจส่งผลกระทบต่อผู้โทรรายอื่น
ตัวอย่างของAdd :
ส่งคืนค่า
ประเภท: System.Boolean true หากการแทรกสำเร็จหรือเป็นเท็จหากมีรายการในแคชที่มีคีย์เดียวกับคีย์อยู่แล้ว
set
แทนที่นโยบายถ้ามีรายการอยู่แล้ว?