Bir konsol uygulamasında Güvenilir zamanlayıcı

oy
78

Ben de farkındayım .NET üç zamanlayıcı türleri (bkz vardır .NET Framework sınıf kitaplığı Zamanlayıcı Sınıfları karşılaştırılması ). Ben ana iş parçacığı meşgul olup olmadığını sürüklenip diğer türleri gibi dişli sayacı seçmiş ve bu güvenilir olması gerekir.

meşgul değilken her zaman ana iş parçacığı üzerinde tamamlanmış başlar çalışmaları ile birlikte kene böylece bu zamanlayıcı zamanlayıcı kontrolünde çalışma şekline başka bir iş parçacığı alınır.

Bir konsol uygulamasında bu zamanlayıcı ile konu zamanlayıcı başka iş parçacığı üzerinde birlikte işliyor iken uygulama kapatır bu yüzden ana iş parçacığı hiçbir şey yapmıyor olmasıdır.

Bir ekleme çalıştı while truedöngü Ancak, zamanlayıcı çıkmak ne zaman sonra ana iş parçacığı çok meşgul.

Oluştur 01/08/2008 saat 13:43
kaynak kullanıcı
Diğer dillerde...                            


2 cevaplar

oy
50

Gibi Bir şey kullanabilirsiniz Console.ReadLine()(zamanlayıcı evreleri gibi), bu yüzden diğer arka plan konuları ana iş parçacığı engellemek için çalışmaya devam eder. Ayrıca, bir kullanabilir AutoResetEvent (eğer gerektiğinde) ana iş parçacığı serbest bırakmak için bu AutoResetEvent nesne üzerinde Küme () yöntemini çağırabilirsiniz sonra yürütülmesine engellemek için. Ayrıca Timer nesnesine referans toplanan kapsam ve çöpten gitmez emin olun.

Cevap 01/08/2008 saat 13:56
kaynak kullanıcı

oy
17

Bir kullanmayı düşünün ManualResetEvent onun işlenmesi sonunda ana iş parçacığı engellemek ve çağrı Reset()zamanlayıcı işlem bittikten sonra üzerine. Bu sürekli çalıştırmak gereken bir şey varsa, bir hizmet sürecinin yerine bir konsol uygulaması içine bu taşımayı düşünün.

Cevap 01/08/2008 saat 13:55
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more