2015-08-05 5 views
1

В какой-то момент выполнения нашего проекта мы используем Task.Factory.StartNew() для создания асинхронных задач. которые необходимы для удаления некоторых временных файлов. Ниже приведен код, который я использую для этого:Асинхронная задача с использованием Task.Factory.StartNew()

Task.Factory.StartNew(Function() deleteTempDocs(path)) 

Проблема в том, что некоторые папки могут иметь привилегированные ограничения. поэтому мне нужно запустить эти задачи с Administrator Rights. даже если мой проект не запущен в правах администратора. можно ли установить права, подобные этому?

+0

Вы определенно хотите, чтобы получить доступ к этим папкам с ограниченным, или достаточно хорошо, чтобы поймать исключение, как это было сделано [здесь] (http://stackoverflow.com/questions/23950102/search-in-restricted -Доступ-папка) – jacoblambert

ответ

0

Невозможно выполнить задачу с правами администратора, так как права назначаются на уровне процесса. Вам нужно будет начать новый процесс, например командный файл, и заставить его запускаться как администратор.

var process = new Process(); 
var processStartInfo = new ProcessStartInfo(); 

processStartInfo.Verb = "runas"; // runs as Administrator 
processStartInfo.FileName = "myFileDeleter.exe"; 
process.StartInfo = processStartInfo; 
process.Start(); 
process.WaitForExit();