qfmeal 发表于 2017-07-04 13:04

多线程如何同步?

我的场景如下:
1.UI主线程
界面上有3个按钮:按钮1、按钮2、按钮3
2.任务线程
任务线程从任务队列中取任务执行。
任务1,任务2,任务3 分别对应三个按钮。
这些任务需要一段时间才能执行完成。

用户点击了按钮1、开始执行任务1.
此时任务1未执行完,又点击了按钮2,任务2插入了任务队列。

我希望完此时能够迅速结束任务1,开始执行任务2
我的做法是添加了一个全局变量,任务中每隔一段代码判断这个变量是否需要退出任务。
感觉这样做很low,请教各位大牛,这种情况应该怎么做?

folklore 发表于 2017-07-04 13:18


差不多只能这样啦, 不然你想怎样?

sxcong 发表于 2017-07-04 17:01

线程向外通知,可以用setevent之类的同步事件方法。

qfmeal 发表于 2017-07-04 18:41

回复 2# folklore

想知道这种情况有没有前辈设计好的框架可用

kenny_24 发表于 2017-07-04 21:58

线程同步可以考虑信号量什么的和WaitForSingleObject
页: [1]
查看完整版本: 多线程如何同步?