如何从另一个线程取消 GTK3 线程?
Posted
技术标签:
【中文标题】如何从另一个线程取消 GTK3 线程?【英文标题】:How to cancel GTK3 thread from another thread? 【发布时间】:2019-06-03 20:27:10 【问题描述】:我有一个图形应用程序,我正在使用 GLib 和 g_thread
函数来创建和操作线程。当我按下“确定”按钮时,我创建了一个执行一些繁重任务的线程。但是我想要另一个名为“取消”的按钮,它允许我随时取消创建的线程。
我正在做一些研究,但找不到任何方法:从另一个不是创建线程的地方终止线程。函数g_thread_exit
只能从线程正在执行的函数中调用。所以我的主要目的是从另一个线程中取消创建的线程,当我点击“取消”按钮时。
也许我必须使用pthread
库,它有一个名为pthread_cancel
的函数可能符合我的期望。
非常感谢您提供任何类型的信息。
【问题讨论】:
【参考方案1】:您可以在两个线程之间共享一个GCancellable
,并让繁重的任务线程在取消时调用g_thread_exit()
。
使用 GLib 线程确实没有办法直接从另一个线程中止一个线程。
【讨论】:
以上是关于如何从另一个线程取消 GTK3 线程?的主要内容,如果未能解决你的问题,请参考以下文章