擅长:python、mysql、java
<p>所以听起来你想同时做两件不同的事情——寻找来自某个用户的输入,并轮询来自其他用户的新消息。jornsharpe将线程作为解决这个问题的第一个选择,我同意这是最直接的。你需要做的是:</p>
<pre><code> import threading
class InputMessageThread(threading.Thread):
def run(self):
SendMessage = raw_input() # This thread will hang here for input but thats
# OK as original thread will keep going
Save = open("Message"+UserName+"-"+SendTo+".txt", "wb")
pickle.dump(SendMessage, Save)
Save.close()
inputthread = InputMessageThread()
inputthread.start()
# rest of your code here
</code></pre>
<p>尽管你可能想看看其他的问题。例如,如果我理解您正试图正确地执行的操作,您将拥有一个包含从源用户到目标用户的消息的文件。但如果源用户在处理此文件之前发送第二条消息,则第一条消息将被覆盖。在实践中,您可能永远看不到这一点,但是在您允许编写下一个消息之前,通过某种握手来确保消息已实际发送,这将是一种更为健壮的方法。你知道吗</p>