小编Ghi*_*102的帖子

函数类型为'T - > Async <'T>,如C#的Task.FromResult

我正在玩异步编程,并且想知道是否存在可以获取类型值'T并将其转换为类型的函数Async<'T>,类似于C#Task.FromResult,它可以获取类型的值TResult并将其转换为Task<TResult>可以等待的类型.

如果F#中不存在这样的功能,是否可以创建它?我可以通过使用Async.AwaitTask和Task.FromResult来模拟这个,但是我可以通过仅使用Async来实现吗?

从本质上讲,我希望能够做到这样的事情:

let asyncValue = toAsync 3 // toAsync: 'T -> Async<'T>

let foo = async{      
  let! value = asyncValue
}
Run Code Online (Sandbox Code Playgroud)

f# asynchronous

6
推荐指数
2
解决办法
207
查看次数

-s 在 powershell 中使用 Start-Job 时

我正在尝试在 powershell 中调用 Start-Job 。当我这样做时,它会生成一个带有以下参数的后台 powershell:

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -Version 5.0 -s -NoLogo -NoProfile -EncodedCommand [encoded command I want to run in base64]
Run Code Online (Sandbox Code Playgroud)

但是,无论我发送什么命令,powershell 命令似乎都永远不会完成。

我尝试生成一个 powershell 实例,如下所示:

powershell.exe -s
Run Code Online (Sandbox Code Playgroud)

这似乎也创建了一个似乎冻结的实例,没有执行或执行任何操作。在网上查找,我似乎找不到任何对 -s 参数的引用。

有谁知道它的用途或如何摆脱它以便我的起始工作正常工作?

编辑: -s 可能是 -sta 的简写,但我的命令不会使用 -sta 冻结,但会使用 -s 冻结。

Edit2:我后来发现 -s 是 -ServerMode 的简写,显然是旧版 Powershell 2.0 选项。我不知道为什么在使用 Start-Job 时添加它。

Edit3:我使用的命令是:

$deploymentsJobs += Start-Job -InitializationScript { SomeSmallFunction } (AnotherFunction) -ArgumentList  $arg1, $arg2, $arg3}
Run Code Online (Sandbox Code Playgroud)

powershell command-line-interface start-job

5
推荐指数
1
解决办法
1900
查看次数