Gast
2006-11-06, 17:54:50
Hi Leute,
ich habe in der MSDN, genauer gesagt hier:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemcollectionssortedlistclasssyncroottopic.asp
folgendes Codebeispiel gefunden:
SortedList myCollection = new SortedList();
lock( myCollection.SyncRoot )
{
foreach ( Object item in myCollection )
{
// Insert your code here.
}
}
das so weit ich verstanden habe dazu dienen soll, die im lock-Block stehenden Operationen an der SortedList myCollection thread-sicher zu machen.
Aber hat das nicht die gleiche Wirkung wie diese Konstruktion:
SortedList myCollection = new SortedList();
Mutex myMutex = new Mutex;
myMutex.WaitOne();
foreach ( Object item in myCollection )
{
// Insert your code here.
}
myMutex.ReleaseMutex();
d.h. ein lock-Block übernimmt einfach die Funktion einer critical section?
Oder hat es mit dieser Synchronisation, die im lock-Block gemacht wird, etwas anderes auf sich?
ich habe in der MSDN, genauer gesagt hier:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemcollectionssortedlistclasssyncroottopic.asp
folgendes Codebeispiel gefunden:
SortedList myCollection = new SortedList();
lock( myCollection.SyncRoot )
{
foreach ( Object item in myCollection )
{
// Insert your code here.
}
}
das so weit ich verstanden habe dazu dienen soll, die im lock-Block stehenden Operationen an der SortedList myCollection thread-sicher zu machen.
Aber hat das nicht die gleiche Wirkung wie diese Konstruktion:
SortedList myCollection = new SortedList();
Mutex myMutex = new Mutex;
myMutex.WaitOne();
foreach ( Object item in myCollection )
{
// Insert your code here.
}
myMutex.ReleaseMutex();
d.h. ein lock-Block übernimmt einfach die Funktion einer critical section?
Oder hat es mit dieser Synchronisation, die im lock-Block gemacht wird, etwas anderes auf sich?