我知道更改TARGETDIR的唯一方法是卸载然后再次安装相同的应用程序.请注意,我需要手头有MSI包.
我想在我的MSI包中添加支持,以便在安装后更改应用程序的TARGETDIR.此功能将由" 添加/删除"窗口中的" 更改"选项触发.选择该选项时,除了能够更改功能外,用户还可以更改TARGETDIR文件夹.
那可能吗?
谢谢.
想象一下有几个任务试图同时使用资源池。池中的单个资源一次只能由特定数量的任务使用;这个数字可以是一个。
在同步环境中,在我看来WaitHandle.WaitAny&Semaphore是必经之路。
var resources = new[] { new Resource(...), new Resource(...) }; // 'Resource' custom class wrapers the resource
var semaphores = new[] { new Semaphore(1, 1), new Semaphore(1, 1) };
...
var index = WaitHandle.WaitAny(semaphores);
try
{
UseResource(resources[index]);
}
finally
{
semaphores[index].Release();
}
Run Code Online (Sandbox Code Playgroud)
但是我们应该在异步环境中做什么?