2010-11-18 12 views
1

GUI iş parçacığı üzerinde bir süre için yürüten bir kod var (bazı şeyleri basitleştirmek için, Button_Click olayında varsayalım).Kullanıcı için "Lütfen bekleyin" iletisini nasıl gösterir ve gizlerim?

Yöntem başladığında "Lütfen bekleyin" mesajını göstermek istiyorum ve çalışmaya devam ediyorum. İş bittiğinde mesajı saklayacağım ve devam edeceğim. Eğer bazı uzun çalışan işlemi varsa, yapmamalısın

MBox.Show("Please wait..."); 
//do my work... 
MBox.Hide(); 
+0

Ana UI iş parçacığı üzerinde çalışmak istemezsiniz ... Arayüzünüzü kilitler ve uygulamanızın kilitlenmiş gibi görünmesini sağlar. Her zaman bir şey ama önemsiz ise bir arka plan iş parçacığı üzerinde yapın. Dahası, bir MessageBox ile, bir kullanıcının görevinizin ne kadar süreceğini bilmesinin bir yolu yoktur, eğer mümkün olursa gerçekten bir ilerleme çubuğu istersiniz. – Ian

cevap

1

.Net 4 kullanıyorsanız, arka plan çalışanınızla çalışmak için Task çalıştırabilirsiniz, ancak iş parçacığı yapabilirsiniz, ancak aynı iş parçacığının içinde olmamalıdır.

3

:

Ben BackgroundWorker (veya başka Konu ile ilgili) ile yapabilirsiniz biliyorum ama umuyordum zaten böyle bitmiş bir şey var Bu UI iş parçacığında. BackgoundWorker ile sorun nedir? Bu sınıf harika! Bu bir WinForms uygulamasıysa kullanmanı öneririm.

0

Bunu yapmak için kendi formunuzu oluşturabilirsiniz. Beklemeyi beklemeleri veya beklemeleri istenirse, kullanıcının beklemesini sağlama konusunda doğal olarak hiçbir şey yoktur. Normal iş akışının kısa bir bekleme gerektirdiği uygulamalarımız var. Bir arka plan iş parçacığı içine yerleştirmek, kullanıcının başka bir şey yapmadan önce işlemin bitmesini beklemesi gerektiğinden, kullanıcıya yardımcı olmaz.