Ejemplo n.º 1
0
 public Module()
 {
     functionPointerDictionary = new Dictionary<string, ModuleFunctionPointer>();
     threadList = new Dictionary<string,Thread>();
     threadsInWork = 0;
     requestFunction = null;
 }
Ejemplo n.º 2
0
 //   public abstract string Execute(string function, Dictionary<string, string> parameter);
 /// <summary>
 /// Startet die Abarbeitung der Modulfunktion.
 /// </summary>
 /// <param name="function">Name der Funktion - entspricht dem Schlüssel in dem Dictionary functionPointerDictionary.</param>
 /// <param name="parameter">Die Parameter die an die Funktion übergäben werden.</param>
 /// <returns></returns>
 public string Execute(string function, Dictionary<string, string> parameter)
 {
     // Neuen Thread erstellen
     Thread t = new Thread(new ThreadStart(Run));
     // Dem Thread einen Namen zuweisen um ihn später zu identifizieren
     t.Name = ""+t.GetHashCode();
     MessageBox.Show("Thread mit Namen gestertet: "+t.Name);//TEST
     // Funktionsparameter zwischenspeichern
     requestFunctionParameter = parameter;
     // Funktionszeiger zwischenspeichern
     requestFunction = GetModulFunction(function);
     t.Start();
     threadsInWork++;
     threadList.Add(t.Name, t);
     // Wen die Funktionen der Mudule paralell abgearbeitet werden könn, muss die Funktion in einem Thread gestertet werden
     // und ert wenn der Thread zu Ende ist, darf das Event weiter gegeben werden.
     return null;
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Fügt eine Funktion zu dem Modul hinzu.
 /// </summary>
 /// <param name="functionPointer">Zeiger auf die Funktion</param>
 /// <param name="functionName">Name der Funktion - entspricht dem Schlüssel in dem Dictionary functionPointerDictionary.</param>
 /// <returns>true wenn die Funktion hinzugefügt wurde.</returns>
 protected bool AddFunctionToModul(ModuleFunctionPointer functionPointer, string functionName)
 {
     try
     {
         functionPointerDictionary.Add(functionName, functionPointer);
         return true;
     }catch(Exception ex){
         return false;
     }
 }