gpt4 book ai didi

C#如何取消一个正在执行的方法

转载 作者:太空狗 更新时间:2023-10-30 00:40:07 25 4
gpt4 key购买 nike

我有一个委托(delegate)方法在我的应用程序中运行繁重的进程(我必须使用 MS Framework 3.5):

private delegate void delRunJob(string strBox, string strJob);

执行:

    private void run()
{
string strBox = "G4P";
string strJob = "Test";

delRunJob delegateRunJob = new delRunJob(runJobThread);
delegateRunJob.Invoke(strBox, strJob);
}

在方法 runJobThread 的某些部分中

我调用外部程序(SAP - 远程函数调用)来检索数据。该行的执行可能需要 1-30 分钟。

private void runJobThread(string strBox, string strJob)
{
// CODE ...
sapLocFunction.Call(); // When this line is running I cannot cancel the process
// CODE ...
}

我想让用户取消整个过程。

如何实现?我尝试了一些方法;但我也陷入了同样的境地;当此特定行正在运行时,我无法停止该过程。

最佳答案

您必须研究异步和等待机制,而不是使用委托(delegate)机制。当您了解此机制后,您可以转到 cancellationtoken。可以在此处找到执行这两项操作的示例: http://blogs.msdn.com/b/dotnet/archive/2012/06/06/async-in-4-5-enabling-progress-and-cancellation-in-async-apis.aspx

关于C#如何取消一个正在执行的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30722897/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com