C# bilmiyorum c++ perspektifinden baktığımda ciddi bir optimizasyon sorununuz olduğu görülüyor. Multithread mümkün olabilir ama bu kolaya kaçmak olur. Yani şu işlemin tek thread ile 1 saniye sürmemesi lazım.
Mesela aşağıda alıntı yaptığım kodu ele alalım. Döngü 50 kere dönüyor ama yapılan işlemler hep aynı. Anladığıma göre get_Range ile belli bir hücre grubuna referans alıyorsunuz. Peki bu döngüde kullanılan bütün hücrelere tek bir referans alıp tek seferde özelliklerini değiştirmek mümkün olamaz mı? Bence kesinlikle mümkündür.
Ayrıca mesela döngünün her adımında
RengiSayiyaCevir(System.Drawing.Color.Black);
yapmışsınız. Halbuki renk hep aynı. Bunu döngü dışında 1 kere hesaplayıp
Alan.Font.Color = sayi; şeklinde yazabilirdiniz.
for (int x = 1; x < 50; x++)
{
Alan = Sayfa.get_Range((object)Sayfa.Cells[2, 1], (object)Sayfa.Cells[x + 1, 20]);
Alan.HorizontalAlignment = Excel.XlHAlign.xlHAlignCenter;
Alan.Font.Name = "MS Reference Sans Serif";
Alan.Font.Color = RengiSayiyaCevir(System.Drawing.Color.Black);
Alan.Font.Size = 10f;
Alan.BorderAround(Excel.XlLineStyle.xlContinuous, Excel.XlBorderWeight.xlMedium, Excel.XlColorIndex.xlColorIndexAutomatic, Type.Missing);
Alan.Value = Alan.Value;
}