在IronPython中获取错误'没有名为threading的模块'

时间:2018-05-12 12:11:23

标签: python ironpython

我需要使用Python在我的.net项目中创建线程功能。为此,我创建了一个控制台应用程序(C#)并添加了Python和IronPython引用。当我运行多线程代码时,我收到以下错误

  

IronPython.Runtime.Exceptions.ImportException:'没有名为threading的模块'

是否需要为线程添加任何引用?当我用谷歌搜索它时,我没有找到任何添加的参考。

以下是代码

import threading
from threading import Thread

def PaymentCalculation(userid):
    sum = 1+1
    return sum

def ProcessingData():    
    data = GetAssigneeData() #will return dataset from DB 

    for member in data.Tables[0].Rows:
        pthread = Thread(target=PaymentCalculation, args=(member["UserId"],)) 
        pthread.start()

我解决了这个问题。我使用了普通的python代码。它不是IronPython代码。我做了如下的更改代码。

from System.Threading import (
ApartmentState,
Thread, ThreadStart,ParameterizedThreadStart
)
def PaymentCalculation(userid):
    sum = 1+1
    return sum
def ProcessingData():
    data = GetAssigneeData()
    for member in data.Tables[0].Rows:
        thread = Thread(ParameterizedThreadStart(PaymentCalculation)) 
        thread.SetApartmentState(ApartmentState.STA) 
        thread.Start(member["UserId"])

1 个答案:

答案 0 :(得分:0)

您的sys.path似乎不包含内置python模块的位置。

在系统中找到python模块。我们假设您在C:/some/dir

下找到了它们

尝试在导入threading之前附加该目录的sys.path。

import sys
sys.path.append('C:/some/dir')
from threading import Thread
<rest of your code>