If you call Thread.Sleep on your GUI-Thread your progressbar will freeze because new WindowMessages won't be processed for the next 500 ms.
Don't call this on your GUI-Thread. But I don't know whats your exactly your problem. The bufferedWaveProvider buffers audiodata from your mp3-stream into a buffer(see the name -> bufferedWaveProvider -> buffers wave). If this buffer is getting full you stop buffering for a while so the buffer can get empty. If it is filled with less than 75% of the space you will buffer again.
But you may would have to explain us your problem a bit more in detail.
Don't call this on your GUI-Thread. But I don't know whats your exactly your problem. The bufferedWaveProvider buffers audiodata from your mp3-stream into a buffer(see the name -> bufferedWaveProvider -> buffers wave). If this buffer is getting full you stop buffering for a while so the buffer can get empty. If it is filled with less than 75% of the space you will buffer again.
But you may would have to explain us your problem a bit more in detail.