Я получаю странный вид моего приложения только в Windows Vista (SP1).При случайном вызове статического метода extern dll приложение перестает работать и неожиданно показывает, что загрузка процессора в диспетчере задач становится равной 00, а память (частный рабочий набор) остается статической.
В приложениях для Windows XP и Windows 7 значениенормальный.
Я покажу пример кода здесь.
DllWrapper.cs
public class DLLWrapper
{
private const string dllTest = @"DLLTEST.dll";
[DllImport(dllTest)]
internal static extern bool DoSomething(string sPath1, string sPath2);
}
CallingClass.cs
//CallingClass Method
private void MoveFile(string sInputPath, string sOutputPath)
{
try
{
//get all xml at input
string[] arrFiles = Directory.GetFiles(sInputPath, "*.xml");
//loop: through all xmls in directory
foreach (string sFile in arrFiles)
{
//cond: check dosmething successful
//calls extrenal dll method
if (DLLWrapper.DoSomething(sFile, sOutputPath))
{
//add something to log
}
//cond: dosomething false
else
{
//add log failure
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
}
Теперь файл журнала иногда записывается успешно, но выполнение приложения останавливается на случайном XML-файле (может быть включен5-й файл XML или может быть на 120-м в каталоге).
Пожалуйста, дайте мне знать, как определить проблему в этой ситуации.