Eğer bir iş parçacığı A uyuyorsa, başka bir iş parçacığı iş parçacığı B, iş parçacığı A'nın nasıl başlatılacağını gösterir? Lütfen mümkünse bir örnek verin..NET'te bir iş parçacığı başlatılıyor
5
A
cevap
6
Uyku yerine, bir EventWaitHandle oluşturmak ve bir zaman aşımıyla WaitOne kullanmak isteyeceksiniz.
İş parçacığının erken uyandırılmasını istediğinizde, olayı yalnızca sinyal verecek şekilde ayarlayabilirsiniz.
İlk oluşturmak EventWaitHandle
: sizin dizisindeki Sonra
wakeUpEvent = new EventWaitHandle(false, EventResetMode.ManualReset);
:
ana program erken iplik uyanmak istiyorwakeUpEvent.WaitOne(new TimeSpan(1, 0, 0));
:
wakeUpEvent.Set();
Not: Olayı otomatik sıfırlama veya manuel sıfırlamaya ayarlayabilirsiniz. Otomatik sıfırlama, WaitOne olaydan döndükten sonra, tekrar sinyalsiz durumuna geri getirileceği anlamına gelir. Bu, bir döngü içinde iseniz ve birden çok kez sinyal verirseniz kullanışlıdır.
1
Bir iş parçacığı bir WaitObject üzerinde bekleyerek ve diğer iş parçacığı üzerinde Set yöntemini çağırarak başlatılabilir. WaitHandle.WaitOne method'a bakın. Bu konuda da yardımcı olabilecek bir makalede,
İlgili konular
- 1. Durdurulan bir iş parçacığı mı başlatılıyor?
- 2. Bir iş parçacığı veya iş parçacığı için bir DAO DAO?
- 3. Bir "gerçek" iş parçacığı
- 4. İş parçacığı tanıtıcısı iş parçacığı tanıtıcısı
- 5. iş parçacığı içinde yerel depolama iş parçacığı
- 6. iş parçacığı
- 7. (C#) Sınıf üyesi başlatılıyor parçacığı güvenlik sorunu
- 8. Bir iş parçacığı özellikle blok
- 9. başka bir iş parçacığı (Net)
- 10. Bir daemon iş parçacığı yalnızca
- 11. UEFI'da bir iş parçacığı oluşturma
- 12. Bir iş parçacığı oluşturma işlevine
- 13. CountdownTimer UI iş parçacığı güncelleştiren çalışan iş parçacığı içinde
- 14. İş parçacığı, iki iş parçacığı arasındaki iletişim C#
- 15. Windows iş parçacığı havuzu ve CLR iş parçacığı havuzu
- 16. UI iş parçacığı üzerinde görev sürdürme, arka plan iş parçacığı
- 17. Qt: Arka plan iş parçacığı yenileme UI iş parçacığı
- 18. Django/sqlite3 "OperationalError: iş parçacığı yok" iş parçacığı üzerinde
- 19. Tomcat iş parçacığı havuzundaki iş parçacığı sayısı nasıl artırılır?
- 20. Ana iş parçacığı
- 21. Python iş parçacığı dökümü
- 22. İş parçacığı durduruluyor
- 23. iş parçacığı afinitesi
- 24. Kinect ile iş parçacığı
- 25. İş parçacığı .net 4
- 26. Ayrı iş parçacığı içinde
- 27. Ayrı iş parçacığı
- 28. gdb - iş parçacığı günlüğü
- 29. WPF iş parçacığı C#
- 30. 'sys.excepthook' ve iş parçacığı
İş parçacığının otomatik olarak durmasını ve el ile yazılmasını istiyorsanız: wakeUpEvent = new EventWaitHandle (false, EventResetMode.ManualReset | EventResetMode.AutoReset); şimdi zamanlayıcı bitecekse iş parçacığı çalışmaya dönecek ve bunu da manuel olarak durdurabilirsiniz. – aharon