Днем, вечером ... где бы ты ни был;)
Я работаю над ThreadManager, который будет выполнять набор ManagedThread <>. Управляемый поток - это универсальная оболочка для ManagableThread, которая содержит большинство основных методов.
Список запускаемых ManagableThread основан на том, что выходит из файла конфигурации, и генерируется в методе ThreadManager.Start. Этот список предназначен для заполнения всеми «ManagedThread», которые должны быть ... управляемыми. Вот код, который я пытаюсь использовать для выполнения этой задачи, и, как я уверен, любой компетентный разработчик C # быстро поймет - я не собираюсь его так разыгрывать.
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;
}
}
}
Я сделал несколько ударов, но безрезультатно. Если у кого-то есть какие-либо предложения, я буду признателен им. Я не эксперт в области дженериков, так что это немного выходит за рамки моей компетенции, поэтому, пожалуйста, воздержитесь от того, чтобы заставить меня плакать, но не стесняйтесь ловить меня, если я дурак.
Заранее спасибо всем, кто может предложить руку.
Редактировать: Я полагаю, что мне следует прояснить мою проблему, а не заставлять всех вас разобраться в этом ... Этот код не будет компилироваться, так как я не могу передать ThreadType в универсальный параметр для моего конструктора.