Nachmittag, Abend... was immer es ist, wo du bist ;)
Ich arbeite an einem 'ThreadManager', der eine Reihe von 'ManagedThread<>'s ausführt. Ein verwalteter Thread ist ein generischer Wrapper für einen "ManagableThread", der die meisten der wesentlichen Methoden enthält.
Die Liste der zu startenden "ManagableThreads" basiert auf den Angaben in einer Konfigurationsdatei und wird in der Methode ThreadManager.Start erstellt. Diese Liste soll mit allen 'ManagedThreads' gefüllt werden, die... verwaltet werden sollen. Hier ist der Code, mit dem ich versuche, diese Aufgabe zu bewältigen, und ich bin sicher, dass jeder kompetente C#-Entwickler schnell erkennen wird, dass ich es so nicht hinbekomme.
public void Start() {
foreach (String ThreadName in this.Config.Arguments.Keys) {
Type ThreadType = null;
if ((ThreadType = Type.GetType(ThreadName)) == null) {
continue;
}
else {
ManagedThread<ThreadType> T = new ManagedThread<ThreadType>(
this,
this.GetConfiguration(ThreadType)
);
this.ManagedThreads.Add(T);
continue;
}
}
}
Ich habe ein paar Versuche unternommen, aber ohne Erfolg. Wenn jemand irgendwelche Vorschläge hat, wäre ich dankbar dafür. Ich bin kein Generics-Experte, so dass dies etwas außerhalb meines Fachgebiets ist, also bitte unterlassen Sie es, mich zum Weinen zu bringen, aber fühlen Sie sich frei, mich zu fangen, wenn ich ein Narr bin.
Vielen Dank im Voraus an alle, die mir helfen können.
Edit: Ich nehme an, ich sollte mein Problem klären, anstatt Sie alle es herausfinden zu lassen... Dieser Code lässt sich nicht kompilieren, da ich "ThreadType" nicht an den generischen Parameter für meinen Konstruktor übergeben kann.