之前写demo的时候发现一个问题,如果在回调函数之后停顿一秒钟调用关闭通道、停止播放操作,那么回调函数可以调用一秒钟。如果在回调函数之后调用清除所有资源的函数,那么函数直接崩溃
尝试在进行这些关闭操作之前写上getchar,回调函数就会一直调用
- getchar实际上有结束主线程的作用
- 之前直接调用清除资源函数,会导致主线程还未结束,资源就已经被释放。这样就会访问非法内存地址。导致崩溃
- 之前直接调用停止操作,是因为sleep函数之后的代码在sleep前面的代码之前编译,因此一秒之后,回调函数停止