private void perform( System.IntPtr Scan0, int stride) { int height = this.bitmap.Height; int steps = computeHeightSteps(height); // anzahl der threads die mehr als die min elemente berechnen int sectorThreshold = height % thHandler.getThreads(); try { for (int i = 0; i < thHandler.getThreads(); i++) { // Zu bearbeitende Zeilen für jeden Thread berechnen int startIndex = i * steps + Math.Min(i, sectorThreshold); int stopIndex = startIndex + steps + (i < sectorThreshold ? 1 : 0); // Das entsprechende Filterobjekt erzeugen und aufrufen ManipulationFactory factory = new FilterFactory(); Manipulate manip = factory.create(this.filter, this.bitmap, Scan0, stride, startIndex, stopIndex, this.thHandler, this.values); Thread thread = new Thread(manip.perform); // Thread starten thread.Start(); // Thread registrieren, um später abzufragen ob thread läuft oder nicht this.thHandler.register(thread); } } catch (FilterUndefinedException e) { Console.WriteLine( e.Message); } }
public void createTest() { FilterFactory target = new FilterFactory(); // TODO: Passenden Wert initialisieren ImageManipulatorType.Name name = ImageManipulatorType.Name.INVERT; Bitmap bitmap = new Bitmap(1, 1); IntPtr Scan0 = new IntPtr(); // TODO: Passenden Wert initialisieren int stride = 0; // TODO: Passenden Wert initialisieren int height_start = 0; // TODO: Passenden Wert initialisieren int height_end = 0; // TODO: Passenden Wert initialisieren ThreadHandler thHandler = null; // TODO: Passenden Wert initialisieren int[] values = null; // TODO: Passenden Wert initialisieren Manipulate expected = null; // TODO: Passenden Wert initialisieren Manipulate actual; actual = target.create(name, bitmap, Scan0, stride, height_start, height_end, thHandler, values); Assert.AreNotEqual(expected, actual); Assert.IsInstanceOfType(actual, typeof(Manipulate)); }
public void FilterFactoryConstructorTest() { FilterFactory target = new FilterFactory(); Assert.IsInstanceOfType(target, typeof(FilterFactory)); }