2016-08-21 39 views
0

我嘗試了很多搜索,但並不真正知道如何將我的問題提出來,所以可能有一個解決方案,我找不到,因爲我不知道如何搜索它。在代碼中運行新代碼的代碼而不是指定目標函數來運行

我有一行代碼,我想運行在一個單獨的線程。到目前爲止,我的印象中,以創建具有啓動線程時使用target參數把你想自己的函數內部運行,然後將代碼中調用該函數一個新的線程:

threading.Thread(target = functionName).start() 

這是好的我的工作是這樣的,但是因爲我只運行一行代碼,在它自己的函數中看起來有點沒有意義,我想擺脫這一點。我想創建線程並有效地指定實際的代碼行本身,而不是函數名稱target

我可以在C#這樣做:

new Thread(delegate() 
{ 
    // any amount of code goes here and it will be run in its own thread 
}).Start(); 

但有什麼辦法,我可以在Python這樣做呢?

+0

所以,你可以使用'lambda'。 – Daniel

+0

@Daniel,不能在lambda表達式中放置任何數量的代碼。沒有循環,有限的控制流程等等。 – ForceBru

+0

@ForceBru:但是OP提到了一行代碼,所以也許lambda足夠了。 – Daniel

回答

0

使用Python,你可以使用lambda

threading.Thread(target = lambda: print('hi')).start() 

在這種情況下讓內聯函數,請注意,「喜」不會在終端顯示,因爲它是在另一個線程

+0

正是我在找的,謝謝! – HenryHunt