W .NET istnieje kilka klas, które odpowiadają mniej więcej za to samo. Przyczyna dlaczego nie ma po prostu jednej klasy a kilka, wynika z faktu, że cześć z nich była zaprojektowana z myślą o konkretnej technologii jak np. WinForms. Nie zmienia to faktu, że dla części programistów nie jest to jasne, kiedy używać konkretnego timer’a. OK, to zaczynamy. W .NET mamy następujące timer’y:System.Threading.Timer – używamy, gdy chcemy aby nasza operacja była wykonywana w osobnym wątku (z puli). Dlatego, ten timer...
Sztuka programowania 4235 dni, 4 godziny, 58 minut temu 216 źrodło rozwiń
Załóżmy, że mamy timer, który co jakiś próbuje połączyć się np. z usługą:internalstaticclass Sample { publicstaticvoid Main() { using (Timer timer =new Timer(Run, null,0,1000)) { Thread.Sleep(500000); } } privatestaticvoid Run(Object state) { Console.WriteLine("Operacja, ktora moze potrwac czasami nawet kilka minut."); } } Powyższy kod w wielu sytuacjach jest poprawny. Należy jednak mieć na uwadze, że operacje takie jak połączenie z bazą danych ...
Sztuka programowania 4270 dni, 2 godziny, 46 minut temu 145 źrodło rozwiń
Kolejna niedzielna, kolejny prosty kawałek kodu który może się komuś przydać Zacznijmy od krótkiego ‘story’ – tworzymy grę w Silverlightcie i chcemy by miała ekran tytułowy w stylu gier np. z konsoli NES – tj. przez paręnaście sekund widzimy ekran menu, a potem odpala się ‘demo’. Sprawa jest banalna – wystarczy utworzyć nowy obiekt typu DispatcherTimer, zainicjować go, podać interwał oraz co ma wykonać po określonym czasie...
Sztuka programowania 4563 dni, 17 godzin, 2 minuty temu 126 źrodło rozwiń
Okazuje się, że bardzo prosto, ale zacznijmy od początku. Niedawno zakończyłem pracę nad serwerem zajmującym się wykonywaniem tzw. zadań wsadowych. Definicje zadań do wykonania pobierane są z bazy danych, a w danym momencie może działać wiele serwerów. Każdy serwer rezerwuje sobie swoje zadania na pewien kwant czasu. Po upływie tego czasu inne serwery mają prawo przejąć to zadanie. Może się tak zdarzyć na przykład jeśli jakiś serwer ulegnie awarii. Jeśli wykonanie danego zadania zajmuje w...
Programowanie rozproszone 5018 dni, 22 godziny, 32 minuty temu 131 źrodło rozwiń