Int32.Parse(FinishSorce.GetValue(i, j).ToString() - to jest jakiś potworek, którego do tego wykonujesz o wiele razy za dużo. Wykonaj to raz, przypisz wynik do zmiennej, po tym sobie rób warunki. Musi to w ogóle przechodzić przez stringa? jeśli masz to w postaci tekstu to wystarczy odjąć od bajta bodajże 48 i masz wartość liczbową, będzie ciut szybciej. FinishSorce.GetLength(1) to też wykonujesz przy każdym przejściu pętli, a podejrzewam że wynik się nie zmienia - przypisz
Int32.Parse(FinishSorce.GetValue(i, j).ToString()- to jest jakiś potworek, którego do tego wykonujesz o wiele razy za dużo. Wykonaj to raz, przypisz wynik do zmiennej, po tym sobie rób warunki. Musi to w ogóle przechodzić przez stringa? jeśli masz to w postaci tekstu to wystarczy odjąć od bajta bodajże 48 i masz wartość liczbową, będzie ciut szybciej.FinishSorce.GetLength(1)to też wykonujesz przy każdym przejściu pętli, a podejrzewam że wynik się nie zmienia - przypisz