【问题标题】:Asynchronous task using Task.Factory.StartNew()使用 Task.Factory.StartNew() 的异步任务
【发布时间】:2015-10-28 02:15:50
【问题描述】:
在项目执行的某个时刻,我们使用Task.Factory.StartNew() 来创建异步任务。这是删除一些临时文件所必需的。以下是我为此使用的代码:
Task.Factory.StartNew(Function() deleteTempDocs(path))
问题是某些文件夹可能有权限限制。所以我需要用Administrator Rights 运行这个任务。即使我的项目没有以管理员权限运行。可以设置这样的权限吗?
【问题讨论】:
-
你肯定想要访问那些受限制的文件夹,或者它是否足以捕获异常,就像 here
标签:
c#
vb.net
winforms
console
scheduled-tasks
【解决方案1】:
无法以管理员权限运行任务,因为权限是在进程级别分配的。您必须启动一个新进程,例如一个批处理文件,并让它以管理员身份运行。
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();