2016-07-20 2 views
1

Ich suche nach einer Technik, die bei der Anforderung eines Threads (Hintergrund-Worker, Task usw.) nicht startet, während ein vorheriger Thread noch verarbeitet wird. Der Thread hat einen Objektschreiber, und wenn er besetzt ist, kann ich ihn im nächsten Thread nicht verwenden, bis er seinen Schreibvorgang beendet hat.Anforderung für einen Thread halten, bis die vorherige Anfrage abgeschlossen ist

Beachten Sie, dass die Verarbeitung, die vor jeder Threadanforderung stattfindet, ausreichend lang genug ist, dass kein Problem auftreten sollte, dies ist nur vorsichtshalber.

Ich vermute, dass, wie ich den Thread hier anfordern ist kritisch für eine Art von Antwort zurück, die den nächsten Thread aufgerufen werden kann. Aber ich könnte helfen, wie ich das einrichten soll. Wenn jemand ein spezifisches Szenario ähnlichen Designs hat, würde ich mich freuen, die empfohlene Technik zu erforschen. Neu an dieser Art von Thread-Verarbeitung.

vb.net

Antwort

0

Typischerweise werden mutexes zur Synchronisation verwendet.

https://msdn.microsoft.com/en-us/library/windows/desktop/ms684266(v=vs.85).aspx

Beachten Sie, dass Sie auch WAIT_ABANDONED Griff benötigen, die der Status ist, wenn ein Thread, der den Mutex hatte statt Fertig stirbt.

Beispiele und weitere Informationen für .Net hier: https://msdn.microsoft.com/en-us/library/system.threading.mutex(v=vs.110).aspx

+0

Ich lese jetzt auf, sieht vielversprechend aus. Außerdem wurde der Abschnitt zum Verwenden kritischer Objektabschnitte gefunden. Vielen Dank für Ihre Antwort. – htm11h

+0

Der erste Link war eine Übersicht. Die zweite Verbindung ist .net –

1

Ich bin nicht sicher, wie Sie planen, diese bei der Umsetzung, aber Sie sollten versuchen, und verwenden Sie die TPL vs. Themen direkt verwenden. Mit Tasks können Sie darauf warten, dass sie abgeschlossen werden.

Siehe das folgende Beispiel https://msdn.microsoft.com/en-us/library/dd537610(v=vs.100).aspx

und die folgenden auf Threads vs. Aufgaben lesen, wenn Sie mehr Informationen über die Unterschiede müssen.

http://blog.slaks.net/2013-10-11/threads-vs-tasks/

+0

, die es gerade jetzt entwirft und versucht, herauszufinden, wie man es macht. Danke für deine Antwort Ich werde den Link lesen. – htm11h

Verwandte Themen