Определение наиболее релевантного/первичного/основного графического процессора ПКC#

Место общения программистов C#
Ответить
Anonymous
 Определение наиболее релевантного/первичного/основного графического процессора ПК

Сообщение Anonymous »

Использование: C#, Net 9.0, VS 2022 и систему пакетов Nuget.management < /p>
ОК, так что это может быть очень основано на мнениях, и в этом случае я сожалею. Через немного спины и четвертого с лидером проекта мне сказали, что я должен сохранить информацию только для одного графического процессора, поэтому, следовательно, наиболее актуально.public class WinVideoControllerInfo
{
#region Properties

public string Name { get; set; }
public uint AdapterRAM { get; set; }
public string AdapterDACType { get; set; }
public string VideoProcessor { get; set; }

#endregion

public WinVideoControllerInfo()
{

}

//this is for Interface Purposes dont mind it
public WinVideoControllerInfo Construct(ManagementBaseObject obj)
{
return new WinVideoControllerInfo(obj);
}

//I am aware of the problems with AdapterRAM I got a solution for that
public WinVideoControllerInfo(ManagementBaseObject obj)
{
//this basically just gets the Property Value of a MBO Property with "the same name"
Name = obj.GetPropVal(nameof(Name));
AdapterRAM = obj.GetPropVal(nameof(AdapterRAM));
AdapterDACType = obj.GetPropVal(nameof(AdapterDACType));
VideoProcessor = obj.GetPropVal(nameof(VideoProcessor));
}
}
< /code>
Важный код < /p>
public static void RetrieveGPUInfo()
{
//Get GPUs (this will have a check if the List is empty)
List winInfos = ReadWinGPUS();
//Filter for the relevant GPU
WinVideoControllerInfo relevantGPU = FilterForRelevantGPU(winInfos);

//Process the Data but I got that bit covered and its not relevant for the question I think
//If you guys want this bit here feel free to tell me
//...
}

public static List ReadWinGPUS()
{
List winInfos = new();

try
{
//all this does is give me the ManagementObjectCollection for Win32_VideoController
ManagementObjectCollection rawGraphicsInformation = GetSearcherResults(SearchAreas.Graphic);

//Iterate through the active GPUs (this automatically does not include any disabled GPUs)
foreach (ManagementBaseObject baseObject in rawGraphicsInformation)
{
WinVideoControllerInfo winInfo = new WinVideoControllerInfo(baseObject);
winInfos.Add(winInfo);
}
}
catch (Exception e)
{
//todo
}

//return all found GPUs
return winInfos;
}

public static WinVideoControllerInfo FilterForRelevantGPU(List winInfos)
{
WinVideoControllerInfo? relevantGPU = null;

WinVideoControllerInfo[] internalGPUs = winInfos.Where(w => w.AdapterDACType.Contains("Internal")).ToArray();
WinVideoControllerInfo[] nonInternalGPUs = winInfos.Except(internalGPUs).ToArray();

//this Filter is very preliminary still
if (nonInternalGPUs.Any())
{
relevantGPU = nonInternalGPUs[0];
}
else
{
relevantGPU = internalGPUs[0];
}

return relevantGPU;
}
< /code>
Теперь, чтобы добраться до мяса вопроса: я начинаю сомневаться в том, разумно ли мой «основной» критерий «не быть внутренним DAC». Документация Shaky, но до сих пор я взял на себя, чтобы понять, что внутренний является показателем того, что это не выделенный графический процессор, а скорее графический процессор, встроенный в процессор. Но я могу ошибаться здесь. Я в основном хочу знать, является ли мое мышление корректировано, и если не то, что есть лучше, чтобы фильтровать для выделенного графического процессора, если он существует. И если существует несколько, как я могу определить его актуальность. Теперь я знаю, что все мысли в первую очередь будут: «Спросите лидерство проекта для более подробной спецификации актуальности». Я хотел бы, чтобы я мог, но сейчас я не получаю его. Я знаю, что это довольно расплывчатая задача, но теперь я немного взламывал мозг по этому поводу. связан, в то время как моя текущая попытка OFC игнорирует, что может быть несколько выделенных графических процессоров. означает
Вопрос второй: если не то, как еще я могу определить, является ли GPU выделен или нет
Вопрос Три: Какие другие атрибуты могут помочь определить «актуальность» ГПУ

Подробнее здесь: https://stackoverflow.com/questions/797 ... pu-of-a-pc
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»