Вместо того, чтобы выполнить один cProfile
, Вы могли работать отдельный cProfile
экземпляр в каждом потоке, затем объединить статистику. Stats.add()
делает это автоматически.
Возможно, вы могли бы сделать свойство SourceUri вашего объекта DataContext немного более умным и определить, что это за папка приложения, и вернуть на основе этого абсолютный путь. Например:
public string SourceUri
{
get
{
return Path.Combine(GetApplicationFolder(), "Resources/image.jpg");
}
}
Environment.CurrentDirectory покажет вам папку, в которой хранится .exe (то есть, если вы вручную не установили .CurrentDirectory - но тогда мы можем предположить, что вы уже знаю где это).
В System.IO.Path есть удобный метод, который может помочь с этим:
return Path.GetFullPath("Resources/image.jpg");
Это должно вернуть 'C: \ Folders \ MoreFolders \ Resources \ image.jpg' или что-то еще, полное путь находится в вашем контексте. Он будет использовать текущую рабочую папку в качестве отправной точки.