Parallel debugging, czyli jak radzić sobie z wieloma wątkami

Ostatnio w projekcie zdarzyło się, że musiałem debugować skomplikowany proces wyliczania, który był zrównoleglony przy pomocy metody Parallel.ForEach(). Moja konfiguracja sprzętowa pozwoliła na uruchomienie kilku wątków naraz co sprawiło, że proces debugowania stał się dość uciążliwy. W różnych, bliżej nieokreślonych momentach, byłem przerzucany pomiędzy różnymi wątkami, a co za tym idzie pomiędzy różnymi kontekstami i miejscami w kodzie.
Continue reading

FormatWith 2.0

Niejednokrotnie sklejałem ze sobą wiele stringów na przykład w ten sposób:

string ala = "Ala";
string ma = "ma";
int dwa = 2;
string koty = "koty";
string zdanie = ala + " " + ma + " " + dwa.ToString() + " " + koty + ".";

Problem w tym, że ta metoda jest mało estetyczna oraz słabo wydajna, ponieważ w ten sposób tworzonych jest wiele pomocniczych obiektów typu string, co powoduje spadek wydajności. Tutaj z pomocą przychodzi nam metoda string.Format(), która wypełnia zadany string tekstem wartości przesłanych obiektów, np:
Continue reading