воскресенье, 6 октября 2013 г.

О Lock'ах, GetHashCode и внутреннем устройстве объекта

Недавно, в Concurrent Programming on Windows прочитал такую вещь: когда у объекта со стандартной реализацией GetHashCode(не переопределенной) вызывается одноименный метод, CLR кэширует полученное значение.
И захотелось мне посмотреть как это там внутри устроено. Вот так и родилась эта статья.

Задачки ШАД на YaC 2013

На YaC 2013, на стенде ШАД, давали первую дозу бесплатно, 5 задачек, для привлечения молодого пополнения, ну и я взял, проверить силы. Итак.

суббота, 28 сентября 2013 г.

Timers in .NET

В последнее время не в первый раз сталкиваюсь с тем, что разработчики не до конца понимают как работает один из стандартных таймеров в .NET - System.Threading.Timer.
Т.е. в общем-то они вроде понимают что таймер что-то выполняет, скорее всего в ThreadPool - и если его использовать для периодического выполнения чего-либо, то он вполне подойдет. Но вот если вам надо создать не один таймер, а положим 1000, то тут люди начинают волноваться: а вдруг вот что-то там не так, а вдруг это все-таки 1000 потоков и даже боятся использовать их в таких случаях. 

Хотелось бы пролить немного света на этот "таинственный" System.Threading.Timer