//przekazanie argumentów i puszczenie próbnych funkcji private static void Run(Configuration config) { //przekazanie wczytanej bitmapy Bitmap bitmap = new Bitmap(config.InputPath); //co to za kolekcja?? Dictionary <int, IList <TimeSpan> > results; //przekazujemy parametry a metoda zwraca nam odpowedni filtrm getter dla filtru IParallelGaussianFilter filter = GetFilter(Assembly); //ustawienie przekazanych wartosci filter.Sigma = config.Sigma; results = RunFilter(filter, bitmap, config.MaxThreadsCount, config.IterationCount); SaveResults(config, bitmap, results, Assembly); filter = GetFilter(HL); filter.Sigma = config.Sigma; results = RunFilter(filter, bitmap, config.MaxThreadsCount, config.IterationCount); SaveResults(config, bitmap, results, HL); }
private static Dictionary <int, IList <TimeSpan> > RunFilter(IParallelGaussianFilter filter, Bitmap bitmap, int maxThreadsCount, int iterationCount) { Dictionary <int, IList <TimeSpan> > results = new Dictionary <int, IList <TimeSpan> >(); //wykonujemy operacje na 1,2,3...,maxThreadsCount wątkach for (int i = 1; i <= maxThreadsCount; i++) { Console.WriteLine($"Thread count: {i}"); results.Add(i, new List <TimeSpan>(iterationCount)); //i liczba współbierznych procesów obsługująca dany proces filter.ParallelOptions.MaxDegreeOfParallelism = i; // for (int j = 0; j < iterationCount; j++) // { bitmap = filter.ApplyFilter(bitmap); //czas operacji filtru results[i].Add(filter.Measurement); // } } bitmap.Save(@"C:\Users\kazim\Desktop\Studia\JA\Projekt\Źródła\Statystyk\Image2.bmp", ImageFormat.Bmp); return(results); }