在C#中,解决此问题的最佳线程方法是什么?

在C#中,解决此问题的最佳线程方法是什么?,c#,multithreading,C#,Multithreading,我有大约30个计算需要在几千个数据点上完成。计算在第三方库中完成。 每个调用都可以并行完成,因此我考虑将调用放在几个线程中 我遇到的问题是,如果需要,如何正确地终止通话。由于我无法访问lib(大部分时间都在lib中),因此无法以良好的方式退出线程 有什么建议吗 谢谢。如果第三方库是托管库,或者将大部分CPU时间花在托管代码上,则可以从单独的appdomain调用它,并在需要终止计算时对整个appdomain进行核爆。如果计算主要在非托管代码中进行,则将计算作为一个单独的进程运行,并取消整个进程。

我有大约30个计算需要在几千个数据点上完成。计算在第三方库中完成。 每个调用都可以并行完成,因此我考虑将调用放在几个线程中

我遇到的问题是,如果需要,如何正确地终止通话。由于我无法访问lib(大部分时间都在lib中),因此无法以良好的方式退出线程

有什么建议吗


谢谢。

如果第三方库是托管库,或者将大部分CPU时间花在托管代码上,则可以从单独的appdomain调用它,并在需要终止计算时对整个appdomain进行核爆。如果计算主要在非托管代码中进行,则将计算作为一个单独的进程运行,并取消整个进程。任何其他方法都是非常危险的,因此是不可取的。

如果第三方库是托管库,或者将大部分CPU时间花在托管代码上,则可以从单独的appdomain调用它,并在需要终止计算时对整个appdomain进行核爆。如果计算主要在非托管代码中进行,则将计算作为一个单独的进程运行,并取消整个进程。任何其他方法都是非常危险的,因此是不明智的。

您可能只需要杀死它们。为什么要终止呼叫?如果计算在那一刻不起作用,你希望以后再试一次它会起作用吗?用户可能会更改输入,这就是我需要终止它的原因。你可能只需要终止它们。为什么要终止调用?如果计算在那一刻不起作用,你希望它能起作用吗?如果你以后再试一次,用户可能会更改输入,这就是为什么我需要终止它。