Cybernetyczny sad
Wpisy otagowane C#
Wątki C# i strona Microsoft
gru 26th
Ostatnio kolega zaczął się interesować kwestią wątków w C# i co logiczne znalazł sobie stronkę na microsoftowym suppporcie. Jednak problem polega na tym, że kod w wymaganiach ma podane .NET 1 (kiedy to było
) a po drugie w tej formie jak jest podany po skompilowaniu dostajemy ładną informacje o wyjątku:
Jest to dość oczywisty wyjątek, gdyż aktualizujemy kontrolkę interfejsu z innego wątku niż została ona utworzona. Jak sobie z tym poradzić? Jest wiele sposób, które także zależa od tego jaka to kontrolka, ale w tym przypadku jest to dość proste i schematyczne.
Po pierwsze, należy sobie dodać do Form1 delegatę. Ja pisałem wcześniej, różnie to bywa i czasami musi ona mieć taka samą sygnaturę jak metoda aktualizująca kontrolkę, ale w przypadku tego progressBar-a nie ma takiej potrzeby:
private delegate void Delegacja();
Następnie fragment kodu, który powoduje wyjątek, czyli:
this.progressBar1.Value = newval;
należy zamienić na intrukcję warunkową, która jeśli będzie to wymagane wywoła metodą Invoke dla naszego paska postępu:
if (this.progressBar1.InvokeRequired)
{
progressBar1.Invoke((Delegacja)delegate
{
this.progressBar1.Value = newval;
});
}
Tym oto prostym sposobem poprawiliśmy ten drobny, aczkolwiek znaczący błąd ![]()
Oczywiście intrukcję warunkową if można pominąć, ale usztywni to nasz kod i spowoduje, że będzie mniej odporny na inne sytuacji, a nie o to chodzi w programowaniu.
Przydałoby się też, aby Microsoft zaktualizował swoje strony i aby dane, szczególnie w materiałach wspracia technicznego, były jak najprecyzyjniesze.
Devexpress rozdaje!
lis 15th
Tak jak w temacie. Firma Devexpress udostępniła za darmo część swoich kontrolek. Wystarczy wejśc na stronę, wypełnić formularz i po otrzymaniu maila można pobrać zestaw kontrolek (około 186mb). Aplikacja stworzona przy pomocy tych kontrolek może być rozprowadzana bez pobierania za nią opłat. Firma Devexpress istnieje na rynku od wielu lat, rodukuje solidne, funkcjonalne i gdzie się da, bardzo ładne kontrolki, więc myśle, że warto się zainteresować tą ofertą.



