我需要使用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"])
答案 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>