şunlardır:IProgress <T> senkronizasyon
İlk çalıştırma:
Result: 1001
Progress: 4
Progress: 6
Progress: 7
Progress: 8
Progress: 9
Progress: 3
Progress: 0
Progress: 1
Progress: 5
Progress: 2
İkinci çalışma:
Progress: 4
Progress: 5
Progress: 6
Progress: 7
Progress: 8
Progress: 9
Progress: 0
Progress: 1
Progress: 2
Result: 1001
Progress: 3
vb ...
Her çalışma için çıktı farklıdır. ilerleme, bunlar 0,1 bildirilmektedir sırayla görüntülenecek şekilde nasıl ... Bu yöntemleri senkronize edebilirsiniz 1001. Ben çıkışı böyle olmasını istediğim sonucu takiben 9:
Progress: 0
.
.
.
Progress: 9
Result: 1001
Konsol uygulamasında, potansiyel olarak GUI uygulamasında (web uygulamaları dahil) kullanılacak bir kitaplık tasarlıyorum. Düşündüğüm başka bir alternatif, bu senaryoda çalışan bir temsilci Eylemi kullanmaktır, ancak lib'm bir GUI uygulamasından kullanılıyorsa bunun en iyi çözüm olup olmadığından emin değilim. Ne düşünüyorsun? –
danze
Bu kararı, bilmediğiniz bir uygulama için yapamazsınız, iş parçacığı gereksinimlerinin ne olduğu hakkında hiçbir fikriniz yoktur ve belirli bir iş parçacığında kullanıldığınızı varsayabilirsiniz. Öyleyse, bir etkinlik oluşturmayın ve istemci uygulamasının bununla ilgilenmesine izin vermeyin. –
Aslında kod yazdığınız kadar kötü değil, Hans'ın dediği gibi, kütüphanenizde karar alamıyorsunuz, bu yüzden IProgress arayüzünü kullanmak kesinlikle iyi bir fikir. GUI uygulamalarından Progress uygulamasını kullanıyorsunuz, Console uygulamalarından kendi uygulamanızı kullanabilirsiniz. İsterseniz, IProgress uygulamanız yalnızca Action 'u sarabilir, böylece nasıl çalışırsınız. Olaylar için bunu tercih ederim, IProgress şu anda standart olarak görünüyor .. –