使用来自 C# 应用程序的单独调用调用两个单独的 python 函数时,使用 pythonnet 进行 Python 多处理

问题描述

我有一个 C# 应用程序,它使用 PythonNet 与 Python 脚本交互。 Python 脚本有 2 个功能一个生成证书的设置功能。另一个是解密函数,它解密传递给它的函数

看起来像这样:

def setup(arn,cache,maxAgeSec):
    ...
    Code to generate cert
    ...

def decryptor(encryptedMessage):
    ...
    code to decrypt message
    ...
    return output

我的应用程序以下列方式使用它:

_lock.Wait();
var pyLock = PythonEngine.AcquireLock();
try
{
    if (_expirytime < DateTime.Now)
    {
        _expirytime = PopulateCredentialsAsync().GetAwaiter().GetResult();
        _py.setup(_config.Arn,_config.Cache,_config.MaxAgeSec);
    }
    return _py.decryptor(message);
}
finally
{
    PythonEngine.ReleaseLock(pyLock);
    _lock.Release();
}

我想编辑我的 Python 文件以允许多处理。因为我使用的是 Windows,所以我知道我必须使用 if __name__ == "__main__"。在从我的应用程序单独调用这两个函数的情况下,是否可以使用多处理?如果可以,如何完成?

一个想法是通过 expirytime_config.Arn_config.Cache_config.MaxAgeSecmessage。对于执行时间检查的已编辑 Python 脚本,如果需要,调用 setup,然后以多处理方式调用 decryptor

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)