【问题标题】:2 Threads, Irc connection on second thread, want first thread to tell thread to send a message2个线程,第二个线程上的Irc连接,希望第一个线程告诉线程发送消息
【发布时间】:2016-03-10 23:18:07
【问题描述】:

所以我正在编写一个带有 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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2014-05-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多