Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Birçok bileşen, çalışmalarını zaman uyumsuz olarak gerçekleştirme seçeneği sunar. SoundPlayer Örneğin ve PictureBox bileşenleri, ana iş parçacığınız kesintisiz çalışmaya devam ederken sesleri ve görüntüleri "arka planda" yüklemenize olanak tanır.
Olay Tabanlı Zaman Uyumsuz Desene Genel Bakış'ı destekleyen bir sınıfta zaman uyumsuz yöntemler kullanmak, diğer tüm olaylarda yaptığınız gibi bileşenin MethodNameCompleted olayına bir olay işleyicisi eklemek kadar basit olabilir. MethodName Async yöntemini çağırdığınızda, MethodNameCompleted olayı tetiklenene kadar uygulamanız kesintisiz çalışmaya devam eder. Olay işleyicinizde, zaman uyumsuz işlemin başarıyla tamamlandığını veya iptal edilmiş olup olmadığını belirlemek için parametresini inceleyebilirsiniz AsyncCompletedEventArgs .
Olay işleyicilerini kullanma hakkında daha fazla bilgi için bkz . Olay İşleyicilerine Genel Bakış.
Aşağıdaki yordamda bir denetimin zaman uyumsuz görüntü yükleme özelliğinin nasıl kullanılacağı gösterilmektedir PictureBox .
PictureBox denetiminin bir görüntüyü zaman uyumsuz olarak yüklemesini etkinleştirmek için
Formunuzda bileşenin PictureBox bir örneğini oluşturun.
Olaya bir olay işleyicisi atayın LoadCompleted .
Zaman uyumsuz indirme sırasında oluşan hataları buradan denetleyin. Ayrıca iptal olup olmadığını kontrol ettiğiniz yer de burasıdır.
public Form1() { InitializeComponent(); this.pictureBox1.LoadCompleted += new System.ComponentModel.AsyncCompletedEventHandler(this.pictureBox1_LoadCompleted); }Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBoxprivate void pictureBox1_LoadCompleted(object sender, AsyncCompletedEventArgs e) { if (e.Error != null) { MessageBox.Show(e.Error.Message, "Load Error"); } else if (e.Cancelled) { MessageBox.Show("Load canceled", "Canceled"); } else { MessageBox.Show("Load completed", "Completed"); } }Private Sub PictureBox1_LoadCompleted( _ ByVal sender As System.Object, _ ByVal e As System.ComponentModel.AsyncCompletedEventArgs) _ Handles PictureBox1.LoadCompleted If (e.Error IsNot Nothing) Then MessageBox.Show(e.Error.Message, "Load Error") ElseIf e.Cancelled Then MessageBox.Show("Load cancelled", "Canceled") Else MessageBox.Show("Load completed", "Completed") End If End SubFormunuza ve
cancelLoadButtonadlıloadButtoniki düğme ekleyin. İndirmeyi başlatmak ve iptal etmek için olay işleyicileri ekleyin Click .private void loadButton_Click(object sender, EventArgs e) { // Replace with a real url. pictureBox1.LoadAsync("https://unsplash.com/photos/qhixfmpqN8s/download?force=true&w=1920"); }Private Sub loadButton_Click( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles loadButton.Click ' Replace with a real url. PictureBox1.LoadAsync("https://unsplash.com/photos/qhixfmpqN8s/download?force=true&w=1920") End Subprivate void cancelLoadButton_Click(object sender, EventArgs e) { pictureBox1.CancelAsync(); }Private Sub cancelLoadButton_Click( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles cancelLoadButton.Click PictureBox1.CancelAsync() End SubUygulamanızı çalıştırın.
Görüntü indirme işlemi devam ederken formu serbestçe taşıyabilir, simge durumuna küçültebilir ve ekranı kaplayabilirsiniz.