2个线程,第二个线程上的Irc连接,想要第一个线程告诉线程发送消息

时间:2016-03-10 23:18:07

标签: python multithreading python-2.7 irc python-multithreading

所以我正在用pygtk gui写一个irc聊天机器人。这个机器人在主脚本的循环中运行它的gui。当我按下gui上的一个按钮时,它启动一个线程,打开一个插座并连接到一个irc通道,当我再次按下它时,它会暂停线程,当我再次按下它时它会恢复该线程。

直到这里一切都很好。

但是当我按下gui(主循环)中的按钮来读取文本框并告诉线程通过irc连接发送文本时,我想要它。

我的问题是我无法通过主循环告诉线程发送文本。我尝试了类似的东西(测试一下):

def botSendMessage(button):
    thread.sendMessage(irc, "test")

handlers = {
"on_bot_send_button_clicked": botSendMessage,

}
builder.connect_signals(handlers)

2 个答案:

答案 0 :(得分:0)

我能够实现我想要的目标。我使用了全局变量。

答案 1 :(得分:0)

我建议使用两个线程中可用的Queue对象(在创建时传入)以在它们之间传递消息。

在irc线程的主循环中,对队列中需要发送的项目进行非阻塞检查。