dotnetomaniak.pl - Artykuły z tagiem C#

W ostatnim poście opisałem atrybut ThreadStatic pozwalający na korzystanie ze statycznych pól w sposób niezależny w każdym wątku. Dziś pora na analogiczną klasę, wprowadzoną w .NET 4.0 – ThreadLocal. Zacznijmy od przykładu:class ClassA { private ThreadLocal

Tagi: C#, ThreadLocal
Dziel się z innymi:
Piotr Zieliński  » Klasa ThreadLocal

Sztuka programowania 2590 dni, 11 godzin, 57 minut temu pzielinski 64 źrodło rozwiń

Telefony z Windows Phone wyposażone są w wibrację, z której możemy korzystać zarówno w grach jak i normalnych aplikacjach. Podstawowe API kontrolera wibracji (VibrateController) pozwana na pojedynczą wibrację, która trwa określony czas. Problem pojawia się gdy chcemy “zagrać” sekwencję wibracji o różnych czasach trwania, z różnymi przerwami. Poniżej przedstawiam klasę VibrationProvider.

WP XNA 6: Wygodne zarządzanie wibracją (VibrationProvider) | Wojciech Poniatowski [PL]

Mobile development 2590 dni, 11 godzin, 57 minut temu poniat 43 źrodło rozwiń

W dzisiejszym temacie przedstawię przykładowy kod C# umożliwiający załadowanie i uruchomienie paczki Integration Services. Na początku w projekcie konieczne jest dodanie referencji do Microsoft.SQLServer.ManagedDTS.dll. Wszystkie użyte klasy znajdują się w przestrzeni Microsoft.SqlServer.Dts.Runtime.

Dziel się z innymi:
Załadowanie i uruchomienie paczki SSIS z poziomu aplikacji .NET « Developer notes

Inne 2590 dni, 17 godzin, 13 minut temu psz750 149 źrodło rozwiń

Na blogu Pawła Potasińskiego istnieje wpis o sposobach konwersji polskich liter zakodowanych w standardzie Mazovia w środowisku SQL Serwera. Jednym z tych sposobów jest zrealizowanie konwersji za pomocą funkcji rozszerzonej, napisanej w .NET. Niestety, nie wykorzystuje ona standardowych mechanizmów konwersji .NET (Encoding), ale zwykłą podmianę znaków (Replace). Dlaczego klasa Encoding nie podołała temu zadaniu i jak mimo wszystko zmusić ją do niego? Odpowiedź w tym wpisie.

Źródło: paskol.robi.to
Dziel się z innymi:
Me z .NET tete-a-tete » Drogie Panie i Panowie, oto sposób na Mazowię.

Bazy danych i XML 2591 dni, 1 godzinę, 34 minuty temu PaSkol 119 źrodło rozwiń

W C# istnieje dość mało popularny atrybut ThreadStaticAttribute. Do czego on służy? Zacznijmy od przykładu:internalclass Program { [ThreadStatic] privatestaticint _value; privatestaticvoid Main(string[] args) { Thread thread1 =new Thread(PrintValue); Thread thread2 =new Thread(PrintValue); thread1.Start(4); thread1.Join(); thread2.Start(); } staticprivatevoid PrintValue(object args) { if(args!=null) _value = (int) ar...

Dziel się z innymi:
Piotr Zieliński » Atrybut ThreadStaticAttribute

Sztuka programowania 2592 dni, 6 godzin, 2 minuty temu pzielinski 92 źrodło rozwiń

W ostatnich postach pisałem o słabych referencjach oraz podałem przykładowe implementacje obsługi zdarzeń. Niestety mimo generycznego rozwiązania, jednej wady nie udało się usunąć a mianowicie tzw. sacrifice object. Przed rozpoczęciem czytania tego wpisu zachęcam  najpierw do zapoznania się z poprzednimi. WeakEventManager to klasa WPF. Jak wspomniałem, często nie wiemy kiedy listener jest usuwany z pamięci w różnego rodzaju kontrolkach. Z tego względu to właśnie WPF dostarcza odpowiednią klasę. W wersji...

Tagi: C#, WPF
Dziel się z innymi:
Piotr Zieliński » WeakEventManager  w WPF 4.5

Windows 2595 dni, 5 godzin, 9 minut temu pzielinski 86 źrodło rozwiń

W WPF dostępne są klasy ItemsPanelTemplate i DataTemplate, dzięki którym możemy zdefiniować własny układ oraz wygląd elementów prezentowanych przez wybraną kontrolkę. W tym temacie pokażę zastosowanie wspomnianych klas na przykładzie obiektu ListView wyświetlającego elementy kolekcji.

WPF – własny układ oraz wygląd elementów dzięki ItemsPanelTemplate i DataTemplate « Developer notes

Windows 2596 dni, 4 godziny, 40 minut temu psz750 253 źrodło rozwiń

W poprzednim poście podałem prostą implementację zdarzeń opartych na słabych referencjach. Zachęcam najpierw do przeczytania poprzedniego wpisu bo bez niego będzie ciężko zrozumieć dzisiejszy post. Dziś implementacja zaproponowana na blogu Paul Stovell’a:publicsealedclass WeakEventHandler

Tagi: C#, weak event
Dziel się z innymi:
Piotr Zieliński » Weak event patterns, część II

Architektura 2598 dni, 2 godziny, 32 minuty temu pzielinski 131 źrodło rozwiń

W dzisiejszym wpisie zajmę się tematem łączenia kolekcji obiektów przy użyciu mechanizmów dostępnych w LINQ. Pokażę przykłady zastosowań metod Concat, Union, Intersect, Except oraz klauzuli Join (zarówno dla złączeń wewnętrznych jak i zewnętrznych). Dla każdego przykładu złączenia kolekcji przedstawię analogiczny sposób łączenia zbiorów danych w języku SQL.

Dziel się z innymi:
Łączenie kolekcji obiektów przy użyciu LINQ « Developer notes

Inne 2599 dni, 18 godzin, 27 minut temu psz750 225 źrodło rozwiń

Dziś jak obiecałem, praktyczny przykład wykorzystania WeakReference ( o który mowa była kilka postów wcześniej). Zdarzenia są częstym powodem memory leak.  Na przykład:publicclass ReportViewModel { publicvoid Init(EmployeesViewModel employeesVm) { employeesVm.PropertyChanged+=EmployeesPropertyChanged; } privatevoid EmployeesPropertyChanged(object sender,EventArgs e) { // logika } } Następnie gdzieś w kodzie tworzymy ReportViewModel, wykonujemy jakieś operację i u...

Tagi: C#, WeakReference
Dziel się z innymi:
Piotr Zieliński » WeakReference – weak event pattern

Inne 2600 dni, 5 godzin, 25 minut temu pzielinski 126 źrodło rozwiń

Chciałbym poświęcić kilka postów na opisanie WeakReference oraz praktycznych przykładów wykorzystania tej klasy. W dzisiejszym wpisie strona teoretyczna i opis klasy. Referencje w środowisku .NET można podzielić na słabe (weak references) oraz silne\mocne (strong references).  Silne referencje są wszystkim doskonale znane np:var sampleClass =new SampleClass(); Innymi słowy jest to standardowy typ powiązania. W momencie gdy wszystkie silne referencje zostaną usunięte wtedy GC może zacząć usuwać taki o...

Tagi: C#, WeakReference
Dziel się z innymi:
Piotr Zieliński » WeakReference – wprowadzenie

Sztuka programowania 2605 dni, 16 godzin, 58 minut temu pzielinski 292 źrodło rozwiń

Kompilacja to właściwie nic innego jak tłumaczenie z jednego języka na drugi. W przypadku C# (a dokładniej .net-a) to tłumaczenie odbywa się dwa razy. Raz z języka czytelnego dla kompilatorów aminokwasowych (c#) na MSIL czyli na taki w dużym uproszczeniu zarządzalny asembler (zrozumiały przez rzadko którego białkowca) a drugi raz z owego MSIL do takiego już prawdziwego kodu maszynowego, który jest zrozumiały dla krzemiaków. Każdy program w C# może mieć praktycznie nieskończenie wiele wers...

Źródło: www.benedykt.net
Dziel się z innymi:
Jak to jest, że kompilując dwa razy mogę otrzymać różny wynik? | @rek online | Arkadiusz Benedykt

Inne 2607 dni, 23 godziny, 33 minuty temu arek 186 źrodło rozwiń

W dwóch poprzednich wpisach rozważałem odczyt i zapis danych, które były odzwierciedleniem (obrazem) pamięci w tzw. programach Win32 (czyli pracujących w środowisku 32 bitowych Windows, z bezpośrednim, niezarządzanym dostępem do pamięci). Wypadałoby postawić „kropkę nad i” tj. wspomnieć jeszcze o klasie Buffer oraz opisać związane z nią i klasami Encoding i BitConverter niuanse, które, gdybym umieścił je w poprzednich wpisach, niepotrzebne utrudniły by lekturę ...

Źródło: paskol.robi.to
Dziel się z innymi:
Me z .NET tete-a-tete » Czas kompleksowo ogarnąć reprezentację binarną

Sztuka programowania 2607 dni, 23 godziny, 33 minuty temu PaSkol 88 źrodło rozwiń

When working with applications that utilize lots of threads and those threads arent particularry long running we can stumble upon a problem that we may lose most of the processing time for thread context switches, so it would be desirable to do all of the processing on a limited number of threads, usualy this can be done using a queue of delegates that each thread will process, but sometimes we cannot have that and still w...

Dziel się z innymi:
[EN] Fibers (series, part 1) | Passion of Programming in .NET

Inne 2609 dni, 6 godzin, 17 minut temu http://badamczewski.blogspo... 157 źrodło rozwiń

Ostatnio było dużo o wielowątkowości więc może zmieńmy temat i zajmijmy się przez dwa posty tematyką WPF. Celem dzisiejszego wpisu jest wyjaśnienie klasy VisualCollection, która będzie niezbędna aby omówić tzw. Adorner. W większości przypadków, XAML w zupełności wystarcza jeśli chodzi o tworzenie interfejsu użytkownika. W WPF istnieje jednak drugie podejście pozwalające rysować elementy i kontrolki. Można manualnie stworzyć kolekcje VisualCollection oraz dodać do niej wszelkie obiekty. Na przykład:public...

Dziel się z innymi:
Piotr Zieliński » Klasa VisualCollection

Windows 2609 dni, 19 godzin, 20 minut temu pzielinski 131 źrodło rozwiń

W dzisiejszym wpisie pokażę w jaki sposób dla danego obiektu WPF wygenerować kod XAML oraz jak taki kod wczytać dynamicznie podczas działania programu. W tym celu użyję klas XamlWriter i XamlReader.

Dziel się z innymi:
WPF – dynamiczne tworzenie i wczytywanie kodu XAML « Developer notes

Windows 2611 dni, 6 godzin, 56 minut temu psz750 318 źrodło rozwiń

W dzisiejszym poście kolejna thread-safe kolekcja – słownik danych. Jeśli musimy modyfikować słownik z kilku wątków naraz wtedy ConcurrentDictionary stanowi doskonały wybór. W przypadku gdy chcemy raz uzupełnić słownik a potem tylko czytać z niego dane, wtedy oczywiście nie ma potrzeby wykorzystywania ConcurrentDictionary. Zacznijmy od spisu najważniejszych metod:TryAdd – dodawanie nowego elementu. TryUpdate – aktualizacja wpisu. TryRemove – usuwanie klucza i wartości. AddOrUpdate – ciekawy twór. Za jedn...

Dziel się z innymi:
Piotr Zieliński  » ConcurrentDictionary

Inne 2612 dni, 18 godzin, 55 minut temu pzielinski 110 źrodło rozwiń

Dziś kolejny post o kolekcjach, które mogą być używanie swobodnie w środowisku współbieżnym. Tak jak ConcurrentBag, obiekty przedstawione w tym poście również są mocno zoptymalizowane. ConcurrentQueue to po prostu kolejka.

Dziel się z innymi:
Wielowątkowe ConcurrentQueue oraz ConcurrentStack

Programowanie rozproszone 2616 dni, 6 godzin, 51 minut temu pzielinski 118 źrodło rozwiń

Kontynuując temat z poprzedniego wpisu, obecnie przedstawię, w jaki sposób wypełnić plik, aby odpowiadał obrazowi pamięci oczekiwanemu przez aplikacje nie napisane w .NET (napisane w kodzie niezarządzanym). W tym wypadku swoją rolę ponownie odegrają klasy BitConvert oraz Encoding. W obu wypadkach użyte zostaną metody o takiej samej nazwie: GetBytes...

Źródło: paskol.robi.to
Dziel się z innymi:
Me z .NET tete-a-tete » Jak plik obrazem pamięci wypełnić i nic nie pokręcić

Sztuka programowania 2617 dni, 23 godziny, 18 minut temu PaSkol 84 źrodło rozwiń

Dziś po długim wprowadzeniu teoretycznym, mającym na celu wyjaśnienie “zaawansowanych” mechanizmów synchronizacji czas przyszedł na pokazanie pierwszej struktury danych. Przed pojawieniem się asynchronicznych kolekcji, najczęściej korzystało się z prostego lock’a jak:lock(_Sync) { _list.Add(newElement); } Rozwiązanie mało wygodne i przede wszystkim niewydajne. Nowe kolekcje zawierają mechanizmy synchronizacji omówione w poprzednich postach takie jak:SpinLock SpinWait SemaphoreSlim CountdownEvent ...

Dziel się z innymi:
Piotr Zieliński » Wprowadzenie do współbieżnych kolekcji danych na przykładzie ConcurrentBag

Sztuka programowania 2619 dni, 7 godzin, 24 minuty temu pzielinski 153 źrodło rozwiń

1 2... 43 44 45 46 47 48... 67 68
Sklep z gadzetami
Dotnetos Conference
itCareerSummit

Najaktywniejsi

1
(32 881,59)
2
(32 816,53)
3
(27 178,29)
4
(21 178,88)
5
(20 336,33)
6
(13 018,14)
7
(10 464,96)
8
(9 775,28)
9
(8 298,27)
10
(6 822,96)
11
(6 214,22)
12
(5 393,84)
13
(4 097,38)
14
(3 979,62)
15
(3 863,06)
16
(3 599,38)
17
(3 448,35)
18
(3 318,39)
19
(3 224,66)
20
(3 105,41)