环境是 Windows10,go1.12
在 powershell 中运行 build 好的程序,当用鼠标滚轮滚动查看程序的输出内容时,极有可能导致进程卡住,表现为不再输出内容和网速占用降为 0kb,当按了 Ctrl+c 就恢复正常。而不滚动终端的输出时就没有发生过这种情况。
请问大伙遇到过这种情况吗?
1
yulon 2020-08-09 06:37:44 +08:00
你选中文字了吧,大概怕你白选,控制台会暂停了标准输入输出
|
2
wwqgtxx 2020-08-09 06:58:02 +08:00 via iPhone 2
只要是控制台程序都会这样吧,当滚动终端的时候会阻塞标准输入输出,如果没有在独立线程中 print 的就会卡住当前执行 print 的线程
|
4
locoz 2020-08-09 08:24:32 +08:00 via Android
是这样的…你还可能会碰到一个疑似 bug 的情况:控制台最小化之后,过段时间程序也卡住了
|
5
mmdsun 2020-08-09 08:41:08 +08:00 via Android
关闭 powershell 的快速编辑模式。
|
6
zhuzeitou 2020-08-09 10:36:32 +08:00 via Android 1
封装一个自己的 log 或者什么的,不直接 print 到 stdout 或 stderr,而是先写到一个 buffer 中,然后用一个 goroutine 负责从 buffer 读取内容 print,这样可能阻塞的 print 只会发生在这个 goroutine,调用 log 的时候不会发生阻塞
|
7
May725 2020-08-09 11:25:31 +08:00 via iPhone
正常的,敲一下回车键就正常了
|
9
toomlo 2020-08-09 16:24:57 +08:00
哇,学习到了~~~
|
10
mengyx 2020-08-09 17:38:22 +08:00 via Android 1
可以用 windows terminal,可以避免这个问题
|