cuốn sách gpt4 ai đã làm

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

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-03 15:28:42 27 4
mua khóa gpt4 Nike

Tôi đã viết một thư viện bằng C# và sử dụng nó trong tập lệnh PowerShell. Thư viện C# tải lượng lớn dữ liệu vào cơ sở dữ liệu. tôi đang sử dụng Bắt đầu công việc để bắt đầu quá trình và tôi đang theo dõi lỗi của tệp.

Tuy nhiên, tôi thấy rằng ngay cả một điều đơn giản while Vòng lặp cũng không thể dừng lại (phải mất đủ hai phút).

C # của tôi:

không gian tên SampleJobDLL
{
lớp công khai ClassX
{
phương thức void công khaiY()
{
while (true)
{
Console.WriteLine("xin chào");
}
}
}
}

PowerShell:

$scriptBlock = {

Loại bổ sung -Đường dẫn ".\SampleJobDLL.dll"

$classX = Đối tượng mới SampleJobDLL.ClassX

$classX.MethodY();
}

$job = Công việc bắt đầu -ScriptBlock $scriptBlock

Sau đó chạy đoạn script sau:

$trước = [DateTime]::Bây giờ; 
$job.StopJob();
$after = [DateTime]::Bây giờ;
$after.Subtract($trước);

Đưa cho tôi:

Ngày: 0
Giờ: 0
Phút: 2
Giây: 0
Mili giây: 4

Có cách nào để sử dụng Bắt đầu công việc(hoặc lệnh tương đương) để chạy mã nhưng có thể dừng nó ngay lập tức không?

câu trả lời hay nhất

Tôi tin rằng dfundako và user2460798 đã đúng: cách dễ nhất là tạo ra một quy trình mới và loại bỏ nó, thay vì làm xáo trộn các công việc của PowerShell.

Đặt nội dung khối tập lệnh vào một tệp mới; gọi nó là (ví dụ)MyScript.ps1.

Sau này, chúng tôi khởi động tập lệnh bằng Start-Process và nắm bắt đối tượng quy trình trong một biến:

$process = Bắt đầu quá trình powershell.exe '.\MyScript.ps1' -PassThru

sử dụng

giết nó
$process.Kill();

hoặc

Dừng quá trình -Id $process.Id -Force

Tôi đã xem xét việc sử dụng [PowerShell]::Tạo() Một phiên bản PowerShell được tạo nhưng không thể gọi lệnh trong khi phiên bản đang chạy mã khác.

Cũng xem xét việc tạo ra một chủ đề mới và nó không hoạt động (ngay cả khi tôi đặt -Mta được chuyển dưới dạng đối số dòng lệnh cho powershell.exe).

Về C# - PowerShell Stop-Job/Stop Job() mất 2 phút để dừng công việc, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/34364187/

27 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress