PowerShell的Stop-Job / StopJob()需要2分钟才能停止作业

塔希尔·哈桑|

我已经使用C#编写了一个库,并在PowerShell脚本中使用了它。C#库将大量数据加载到数据库中。我正在Start-Job启动该过程,并且正在监视文件中的错误。

但是,我发现即使是whileC#中的简单循环也无法停止(需要整整两分钟)。

我的C#:

namespace SampleJobDLL
{
    public class ClassX
    {
        public void MethodY()
        {
            while (true)
            {
                Console.WriteLine("hello");
            }
        }
    }
}

电源外壳:

$scriptBlock = {

    Add-Type -Path ".\SampleJobDLL.dll"

    $classX = New-Object SampleJobDLL.ClassX

    $classX.MethodY();
}

$job = Start-Job -ScriptBlock $scriptBlock

然后运行以下脚本:

$before = [DateTime]::Now; 
$job.StopJob(); 
$after = [DateTime]::Now; 
$after.Subtract($before);

给我:

Days              : 0
Hours             : 0
Minutes           : 2
Seconds           : 0
Milliseconds      : 4

是否有使用Start-Job(或等效命令)运行代码但能够立即停止运行的方法

塔希尔·哈桑|

我相信dfundako和user2460798是正确的:生成新进程并杀死它是最简单的,而不是搞砸PowerShell Jobs。

将脚本块内容放入一个新文件中;称呼它(例如)MyScript.ps1

之后,我们使用Start-Process启动脚本,并在变量中捕获流程对象:

$process = Start-Process powershell.exe '.\MyScript.ps1' -PassThru

使用杀死它

$process.Kill();

或者

Stop-Process -Id $process.Id -Force

我已经研究过使用创建PowerShell实例,[PowerShell]::Create()但是在实例运行其他代码时无法针对该实例调用命令。

还研究了产生一个新线程,该线程不起作用(即使我-Mta作为命令行arg传递给powershell.exe也是如此)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Powershell Start-Job节流

来自分类Dev

使用Node-Cron每45分钟运行一次Cron Job

来自分类Dev

如何在其他cmd实例中停止Powershell Job

来自分类Dev

为什么此MYSQL UPDATE查询需要2分钟才能运行?

来自分类Dev

简单的SQL查询需要20分钟才能运行?

来自分类Dev

mysql查询需要4分钟才能执行

来自分类Dev

Ubuntu 需要一分钟才能启动

来自分类Dev

Why does PowerShell recognize "job" as a command

来自分类Dev

Powershell,停止作业需要太长时间

来自分类Dev

如果EXPLAIN仅显示400行,为什么MySQL SELECT查询需要1-2分钟才能运行?

来自分类Dev

我的旧显示器Samsung Syncmaster 740n需要2-3分钟才能打开

来自分类Dev

Jenkins Job Builder-自动管道作业

来自分类Dev

GetScheduled-Job不返回任何作业

来自分类Dev

Azure Stream Analytics Job将两个事件中心之间的不匹配记录输出延迟了1分钟

来自分类Dev

Kubuntu需要超过2分钟的启动时间!

来自分类Dev

SparkR作业100分钟超时

来自分类Dev

PowerShell Start-Job不创建或修改文件

来自分类Dev

如何在 Powershell Start-job 中调用模块函数

来自分类Dev

在本地机器上停止Quartz Job

来自分类Dev

需要PHP Cron Job Flush / OB Flush?

来自分类Dev

在SQL Server中,使用.modify()XQuery删除节点需要38分钟才能执行

来自分类Dev

performSegueWithIdentifier需要一分钟才能执行或崩溃

来自分类Dev

正在配置TLS证书。这可能需要15分钟才能完成

来自分类Dev

音色(Clojure),需要一分钟才能完成

来自分类Dev

Cygwin的MinTTY大约需要一分钟才能启动

来自分类Dev

我的一位监护人需要5-7分钟才能唤醒

来自分类Dev

Windows 10 24GB和SSD需要5分钟才能启动

来自分类Dev

Xubuntu需要一分钟时间才能关闭以重新启动

来自分类Dev

加快用于Windows注册表搜索的PowerShell脚本(当前为30分钟)

Related 相关文章

  1. 1

    Powershell Start-Job节流

  2. 2

    使用Node-Cron每45分钟运行一次Cron Job

  3. 3

    如何在其他cmd实例中停止Powershell Job

  4. 4

    为什么此MYSQL UPDATE查询需要2分钟才能运行?

  5. 5

    简单的SQL查询需要20分钟才能运行?

  6. 6

    mysql查询需要4分钟才能执行

  7. 7

    Ubuntu 需要一分钟才能启动

  8. 8

    Why does PowerShell recognize "job" as a command

  9. 9

    Powershell,停止作业需要太长时间

  10. 10

    如果EXPLAIN仅显示400行,为什么MySQL SELECT查询需要1-2分钟才能运行?

  11. 11

    我的旧显示器Samsung Syncmaster 740n需要2-3分钟才能打开

  12. 12

    Jenkins Job Builder-自动管道作业

  13. 13

    GetScheduled-Job不返回任何作业

  14. 14

    Azure Stream Analytics Job将两个事件中心之间的不匹配记录输出延迟了1分钟

  15. 15

    Kubuntu需要超过2分钟的启动时间!

  16. 16

    SparkR作业100分钟超时

  17. 17

    PowerShell Start-Job不创建或修改文件

  18. 18

    如何在 Powershell Start-job 中调用模块函数

  19. 19

    在本地机器上停止Quartz Job

  20. 20

    需要PHP Cron Job Flush / OB Flush?

  21. 21

    在SQL Server中,使用.modify()XQuery删除节点需要38分钟才能执行

  22. 22

    performSegueWithIdentifier需要一分钟才能执行或崩溃

  23. 23

    正在配置TLS证书。这可能需要15分钟才能完成

  24. 24

    音色(Clojure),需要一分钟才能完成

  25. 25

    Cygwin的MinTTY大约需要一分钟才能启动

  26. 26

    我的一位监护人需要5-7分钟才能唤醒

  27. 27

    Windows 10 24GB和SSD需要5分钟才能启动

  28. 28

    Xubuntu需要一分钟时间才能关闭以重新启动

  29. 29

    加快用于Windows注册表搜索的PowerShell脚本(当前为30分钟)

热门标签

归档