所以我正在用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)
答案 0 :(得分:0)
我能够实现我想要的目标。我使用了全局变量。
答案 1 :(得分:0)
我建议使用两个线程中可用的Queue对象(在创建时传入)以在它们之间传递消息。
在irc线程的主循环中,对队列中需要发送的项目进行非阻塞检查。