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

问题描述 投票:0回答:2

所以我正在用 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)
python multithreading python-2.7 irc python-multithreading
2个回答
0
投票

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


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.