Częścią przeniesienia aplikacji Java do C# jest zaimplementowanie zsynchronizowanego bufora komunikatów w języku C#. Przez synchronizację mam na myśli to, że wątki powinny być bezpieczne, aby pisać i odczytywać wiadomości do iz niego.Metody zsynchronizowane w C#
W języku Java można to rozwiązać za pomocą metod synchronized
i wait()
i notifyAll()
.
Przykład:
public class MessageBuffer {
// Shared resources up here
public MessageBuffer() {
// Initiating the shared resources
}
public synchronized void post(Object obj) {
// Do stuff
wait();
// Do more stuff
notifyAll();
// Do even more stuff
}
public synchronized Object fetch() {
// Do stuff
wait();
// Do more stuff
notifyAll();
// Do even more stuff and return the object
}
}
Jak mogę osiągnąć coś podobnego w C#?
Powiązane: http://stackoverflow.com/questions/541194/c-sharp-version-of-javas-synchronized-keyword – sshow
@stigok niezwiązane, to duplikat –
Nie duplikat, nie wspominają o oczekiwaniu() i notifyAll() – Dimme