控制类程序中如何实现暂停和停止功能!!!

1、是通过pause暂停线程,kill停止线程???
2、还是通过函数的一层层return最终跳出控制程序???
目前本人用的是return方式,但是感觉很繁琐,每发送一次命令就要判断一下返回值,想找到一种更好的方法,希望大家指点一下解决的思路!!!

做过一个启线程去持续监听一个端口,用于接收数据,但是有时候需要暂停接收数据,我实现的方法不是去停线程,是设置一个flg,实现伪暂停。
static bool flg = true;
while(true){
if(flg){
接收数据,做处理。。。。
}
}