Codebase list golang-github-vbauerster-mpb / 7bb7260
multi example Vladimir Bauer 9 years ago
1 changed file(s) with 47 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
0 package main
1
2 import (
3 "sync"
4 "time"
5
6 "github.com/vbauerster/uiprogress"
7 )
8
9 func main() {
10 waitTime := time.Millisecond * 100
11 // p := uiprogress.New().RefreshInterval(100 * time.Millisecond)
12 p := uiprogress.New()
13
14 var wg sync.WaitGroup
15 bar1 := p.AddBar(20).AppendCompleted().PrependElapsed()
16 wg.Add(1)
17 go func() {
18 defer wg.Done()
19 for bar1.Incr() {
20 time.Sleep(waitTime)
21 }
22 }()
23
24 bar2 := p.AddBar(40).AppendCompleted().PrependElapsed()
25 wg.Add(1)
26 go func() {
27 defer wg.Done()
28 for bar2.Incr() {
29 time.Sleep(waitTime)
30 }
31 }()
32
33 time.Sleep(time.Second)
34 bar3 := p.AddBar(80).PrependElapsed().AppendCompleted()
35 wg.Add(1)
36 go func() {
37 defer wg.Done()
38 for bar3.Incr() {
39 time.Sleep(waitTime)
40 }
41 }()
42
43 wg.Wait()
44 p.Stop()
45 // p.AddBar(1) // panic: send on closed channnel
46 }