在为HDInsight编程时,我遇到了类似的行
$storageAccountKey = Get-AzureRmStorageAccountKey
-ResourceGroupName $resourceGroupName
-Name $storageAccountName
| %{ $_.Key1 }
Run Code Online (Sandbox Code Playgroud)
我理解$_是指Get-AzureRmStorageAccountKey命令的结果.但究竟是什么意思%{}?
我在C#,VS2012,WPF 4.5中有以下代码.我的期望是,.ContinueWith将在任务完成后执行(这是一个延续的完整目的,不是吗?).
这应该导致值为2英寸finalResult.
int myTestInt = 0;
Task task = Task.Factory.StartNew(async () =>
{
myTestInt = 1;
await Task.Delay(TimeSpan.FromSeconds(6));
myTestInt = 2;
}).ContinueWith(_ =>
{
int finalResult = myTestInt;
});
Run Code Online (Sandbox Code Playgroud)
实际上,finalResult被赋值为1.所以似乎await已经在声明中开始了延续.
这是预期的行为吗?我在这里错过了什么吗?ContinueWith任务完成后我不能依靠启动吗?
更新:
Justin的回答激发了我检查以下内容:
int myTestInt = 0;
Task task=Task.Factory.StartNew(async () =>
{
myTestInt = 1;
await Task.Delay(TimeSpan.FromSeconds(6));
myTestInt = 2;
});
task.Wait();
int result2 = myTestInt;
Run Code Online (Sandbox Code Playgroud)
finalResult仍设置为1.是否无法可靠地等待包含awaits 的任务完成?
有没有办法从代码中禁用鼠标提升,即阻止窗口将触摸事件解释为鼠标事件?
我在 WPF 应用程序中捕获触摸事件,并且我不希望这些交互影响鼠标指针的可见性和位置。
有一个TouchFrameEventArgs.SuspendMousePromotionUntilTouchUp 方法似乎就是这样做的。不幸的是,它仅适用于 Silverlight 和 Windows Phone。
此外,还有一些系统设置可以用来禁用双击和右键单击提升,但没有什么可以禁用整个鼠标提升。
Windows 8 特定解决方案或低级解决方案也会有所帮助。